<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Remotion</name>
    </assembly>
    <members>
        <member name="T:Remotion.AdapterRegistry">
            <summary>Used to register <see cref="T:Remotion.IAdapter"/> instances.</summary>
            <remarks>Used by those modules of the framework that do not have binary depedencies to another module to access information from this module.</remarks>
        </member>
        <member name="M:Remotion.BridgeImplementations.ParamListCreateImplementation.CreateDynamic(System.Type[],System.Object[])">
            <summary>
            Creates a strongly typed list of parameters to be passed to a function or action.
            </summary>
            <returns>A <see cref="T:Remotion.Reflection.ParamList"/> encapsulating the passed parameters.</returns>
        </member>
        <member name="T:Remotion.Collections.CacheFactory">
            <summary>
            The <see cref="T:Remotion.Collections.CacheFactory"/> provides factory methods to create new caches.
            </summary>
        </member>
        <member name="M:Remotion.Collections.CacheFactory.Create``2">
            <summary>
            Creates a <see cref="T:Remotion.Collections.Cache`2"/> instance that is not thread-safe and uses the <see cref="P:System.Collections.Generic.EqualityComparer`1.Default"/> 
            <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>.
            </summary>
            <typeparam name="TKey">The type of the keys.</typeparam>
            <typeparam name="TValue">The type of the values.</typeparam>
            <returns>
            A <see cref="T:Remotion.Collections.Cache`2"/> instance for storing keys and values.
            </returns>
        </member>
        <member name="M:Remotion.Collections.CacheFactory.Create``2(System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Creates a <see cref="T:Remotion.Collections.Cache`2"/> instance that is not thread-safe and uses the specified
            <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>.
            </summary>
            <typeparam name="TKey">The type of the keys.</typeparam>
            <typeparam name="TValue">The type of the values.</typeparam>
            <param name="comparer">The comparer to use for comparing keys.</param>
            <returns>
            A <see cref="T:Remotion.Collections.Cache`2"/> instances for storing keys and values.
            </returns>
        </member>
        <member name="M:Remotion.Collections.CacheFactory.CreateWithLocking``2">
            <summary>
            Creates a <see cref="T:Remotion.Collections.LockingCacheDecorator`2"/> instance that is thread-safe and uses the <see cref="P:System.Collections.Generic.EqualityComparer`1.Default"/> 
            <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>.
            </summary>
            <typeparam name="TKey">The type of the keys.</typeparam>
            <typeparam name="TValue">The type of the values.</typeparam>
            <returns>
            A <see cref="T:Remotion.Collections.LockingCacheDecorator`2"/> instances for storing keys and values in a thread-safe way.
            </returns>
            <remarks>
            The created instance uses a single lock (see <see cref="T:System.Threading.Monitor"/>) to guard the data store against multi-threaded access. It is well-suited
            for caches in which the factory delegates passed to <see cref="M:Remotion.Collections.ICache`2.GetOrCreateValue(`0,System.Func{`0,`1})"/> only take a short time to 
            complete. When the factory delegates take a long time to execute, consider using <see cref="M:Remotion.Collections.CacheFactory.CreateWithLazyLocking``2"/> instead 
            to reduce contention.
            </remarks>
        </member>
        <member name="M:Remotion.Collections.CacheFactory.CreateWithLocking``2(System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Creates a <see cref="T:Remotion.Collections.LockingCacheDecorator`2"/> instance that is thread-safe and uses the specified
            <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>.
            </summary>
            <typeparam name="TKey">The type of the keys.</typeparam>
            <typeparam name="TValue">The type of the values.</typeparam>
            <param name="comparer">The comparer to use for comparing keys.</param>
            <returns>
            A <see cref="T:Remotion.Collections.LockingCacheDecorator`2"/> instances for storing keys and values in a thread-safe way.
            </returns>
            <remarks>
            The created instance uses a single lock (see <see cref="T:System.Threading.Monitor"/>) to guard the data store against multi-threaded access. It is well-suited
            for caches in which the factory delegates passed to <see cref="M:Remotion.Collections.ICache`2.GetOrCreateValue(`0,System.Func{`0,`1})"/> only take a short time to 
            complete. When the factory delegates take a long time to execute, consider using <see cref="M:Remotion.Collections.CacheFactory.CreateWithLazyLocking``2(System.Collections.Generic.IEqualityComparer{``0})"/> instead 
            to reduce contention.
            </remarks>
        </member>
        <member name="M:Remotion.Collections.CacheFactory.CreateWithLazyLocking``2">
            <summary>
            Creates a <see cref="T:Remotion.Collections.LazyLockingCachingAdapter`2"/> instance that is thread-safe and uses the <see cref="P:System.Collections.Generic.EqualityComparer`1.Default"/> 
            <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>.
            </summary>
            <typeparam name="TKey">The type of the keys.</typeparam>
            <typeparam name="TValue">The type of the values.</typeparam>
            <returns>
            A <see cref="T:Remotion.Collections.LazyLockingCachingAdapter`2"/> instances for storing keys and values in a thread-safe way.
            </returns>
            <remarks>
            The created instance uses a single lock (see <see cref="T:System.Threading.Monitor"/>) to guard the data store against multi-threaded access and additional, 
            double-checked locks (see <see cref="T:Remotion.DoubleCheckedLockingContainer`1"/>) to protect each single value. It is well-suited for caches
            in which the factory delegates passed to <see cref="M:Remotion.Collections.ICache`2.GetOrCreateValue(`0,System.Func{`0,`1})"/> take a long time to execute. When the factory
            delegates do not take a long time, consider using <see cref="M:Remotion.Collections.CacheFactory.CreateWithLocking``2"/> instead to reduce the number of locks used.
            </remarks>
        </member>
        <member name="M:Remotion.Collections.CacheFactory.CreateWithLazyLocking``2(System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Creates a <see cref="T:Remotion.Collections.LazyLockingCachingAdapter`2"/> instance that is thread-safe and uses the specified
            <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>.
            </summary>
            <typeparam name="TKey">The type of the keys.</typeparam>
            <typeparam name="TValue">The type of the values.</typeparam>
            <param name="comparer">The comparer to use for comparing keys.</param>
            <returns>
            A <see cref="T:Remotion.Collections.LazyLockingCachingAdapter`2"/> instances for storing keys and values in a thread-safe way.
            </returns>
            <remarks>
            The created instance uses a single lock (see <see cref="T:System.Threading.Monitor"/>) to guard the data store against multi-threaded access and additional,
            double-checked locks (see <see cref="T:Remotion.DoubleCheckedLockingContainer`1"/>) to protect each single value. It is well-suited for caches
            in which the factory delegates passed to <see cref="M:Remotion.Collections.ICache`2.GetOrCreateValue(`0,System.Func{`0,`1})"/> take a long time to execute. When the factory
            delegates do not take a long time, consider using <see cref="M:Remotion.Collections.CacheFactory.CreateWithLocking``2(System.Collections.Generic.IEqualityComparer{``0})"/> instead to reduce the number of locks used.
            </remarks>
        </member>
        <member name="T:Remotion.Collections.CollectionExtensions">
            <summary>
            Provides useful extension methods for the <see cref="T:System.Collections.Generic.ICollection`1"/> interface.
            </summary>
        </member>
        <member name="T:Remotion.Collections.DataStoreFactory">
            <summary>
            The <see cref="T:Remotion.Collections.DataStoreFactory"/> provides factory methods to create new data stores.
            </summary>
        </member>
        <member name="M:Remotion.Collections.DataStoreFactory.Create``2">
            <summary>
            Creates a <see cref="T:Remotion.Collections.SimpleDataStore`2"/> instance that is not thread-safe and uses the <see cref="P:System.Collections.Generic.EqualityComparer`1.Default"/> 
            <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>.
            </summary>
            <typeparam name="TKey">The type of the keys.</typeparam>
            <typeparam name="TValue">The type of the values.</typeparam>
            <returns>
            A <see cref="T:Remotion.Collections.SimpleDataStore`2"/> instances for storing keys and values.
            </returns>
        </member>
        <member name="M:Remotion.Collections.DataStoreFactory.Create``2(System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Creates a <see cref="T:Remotion.Collections.SimpleDataStore`2"/> instance that is not thread-safe and uses the specifiede
            <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>.
            </summary>
            <typeparam name="TKey">The type of the keys.</typeparam>
            <typeparam name="TValue">The type of the values.</typeparam>
            <param name="comparer">The comparer to use for comparing keys.</param>
            <returns>
            A <see cref="T:Remotion.Collections.SimpleDataStore`2"/> instances for storing keys and values.
            </returns>
        </member>
        <member name="M:Remotion.Collections.DataStoreFactory.CreateWithLocking``2">
            <summary>
            Creates a <see cref="T:Remotion.Collections.LockingDataStoreDecorator`2"/> instance that is thread-safe and uses the <see cref="P:System.Collections.Generic.EqualityComparer`1.Default"/> 
            <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>.
            </summary>
            <typeparam name="TKey">The type of the keys.</typeparam>
            <typeparam name="TValue">The type of the values.</typeparam>
            <returns>
            A <see cref="T:Remotion.Collections.LockingDataStoreDecorator`2"/> instances for storing keys and values in a thread-safe way.
            </returns>
            <remarks>
            The created instance uses a single lock (see <see cref="T:System.Threading.Monitor"/>) to guard the data store against multi-threaded access. It is well-suited
            for data stores in which the factory delegates passed to <see cref="M:Remotion.Collections.IDataStore`2.GetOrCreateValue(`0,System.Func{`0,`1})"/> only take a short time to 
            complete. When the factory delegates take a long time to execute, consider using <see cref="M:Remotion.Collections.DataStoreFactory.CreateWithLazyLocking``2"/> instead 
            to reduce contention.
            </remarks>
        </member>
        <member name="M:Remotion.Collections.DataStoreFactory.CreateWithLocking``2(System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Creates a <see cref="T:Remotion.Collections.LockingDataStoreDecorator`2"/> instance that is thread-safe and uses the specified
            <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>.
            </summary>
            <typeparam name="TKey">The type of the keys.</typeparam>
            <typeparam name="TValue">The type of the values.</typeparam>
            <param name="comparer">The comparer to use for comparing keys.</param>
            <returns>
            A <see cref="T:Remotion.Collections.LockingDataStoreDecorator`2"/> instances for storing keys and values in a thread-safe way.
            </returns>
            <remarks>
            The created instance uses a single lock (see <see cref="T:System.Threading.Monitor"/>) to guard the data store against multi-threaded access. It is well-suited
            for data stores in which the factory delegates passed to <see cref="M:Remotion.Collections.IDataStore`2.GetOrCreateValue(`0,System.Func{`0,`1})"/> only take a short time to 
            complete. When the factory delegates take a long time to execute, consider using <see cref="M:Remotion.Collections.DataStoreFactory.CreateWithLazyLocking``2(System.Collections.Generic.IEqualityComparer{``0})"/> instead 
            to reduce contention.
            </remarks>
        </member>
        <member name="M:Remotion.Collections.DataStoreFactory.CreateWithLazyLocking``2">
            <summary>
            Creates a <see cref="T:Remotion.Collections.LazyLockingDataStoreAdapter`2"/> instance that is thread-safe and uses the <see cref="P:System.Collections.Generic.EqualityComparer`1.Default"/> 
            <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>.
            </summary>
            <typeparam name="TKey">The type of the keys.</typeparam>
            <typeparam name="TValue">The type of the values.</typeparam>
            <returns>
            A <see cref="T:Remotion.Collections.LazyLockingDataStoreAdapter`2"/> instances for storing keys and values in a thread-safe way.
            </returns>
            <remarks>
            The created instance uses a single lock (see <see cref="T:System.Threading.Monitor"/>) to guard the data store against multi-threaded access and additional, 
            double-checked locks (see <see cref="T:Remotion.DoubleCheckedLockingContainer`1"/>) to protect each single value. It is well-suited for data stores
            in which the factory delegates passed to <see cref="M:Remotion.Collections.IDataStore`2.GetOrCreateValue(`0,System.Func{`0,`1})"/> take a long time to execute. When the factory
            delegates do not take a long time, consider using <see cref="M:Remotion.Collections.DataStoreFactory.CreateWithLocking``2"/> instead to reduce the number of locks used.
            </remarks>
        </member>
        <member name="M:Remotion.Collections.DataStoreFactory.CreateWithLazyLocking``2(System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Creates a <see cref="T:Remotion.Collections.LazyLockingDataStoreAdapter`2"/> instance that is thread-safe and uses the specified
            <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>.
            </summary>
            <typeparam name="TKey">The type of the keys.</typeparam>
            <typeparam name="TValue">The type of the values.</typeparam>
            <param name="comparer">The comparer to use for comparing keys.</param>
            <returns>
            A <see cref="T:Remotion.Collections.LazyLockingDataStoreAdapter`2"/> instances for storing keys and values in a thread-safe way.
            </returns>
            <remarks>
            The created instance uses a single lock (see <see cref="T:System.Threading.Monitor"/>) to guard the data store against multi-threaded access and additional,
            double-checked locks (see <see cref="T:Remotion.DoubleCheckedLockingContainer`1"/>) to protect each single value. It is well-suited for data stores
            in which the factory delegates passed to <see cref="M:Remotion.Collections.IDataStore`2.GetOrCreateValue(`0,System.Func{`0,`1})"/> take a long time to execute. When the factory
            delegates do not take a long time, consider using <see cref="M:Remotion.Collections.DataStoreFactory.CreateWithLocking``2(System.Collections.Generic.IEqualityComparer{``0})"/>
            instead to reduce the number of locks used.
            </remarks>
        </member>
        <member name="T:Remotion.Collections.ExpiringDataStore`4">
            <summary>
            The <see cref="T:Remotion.Collections.ExpiringDataStore`4"/> stores values that can be expire.
            </summary>
        </member>
        <member name="T:Remotion.Collections.IDataStore`2">
            <summary>
            Provides a common interface for data structures used for storing and retrieving key/value pairs.
            </summary>
            <typeparam name="TKey">The type of the keys.</typeparam>
            <typeparam name="TValue">The type of the values.</typeparam>
            <remarks>
            <para>
            This interface is basically a simplified version of the <see cref="T:System.Collections.Generic.IDictionary`2"/> interface. In contrast to 
            <see cref="T:System.Collections.Generic.IDictionary`2"/>, it does not require implementers to support <see cref="T:System.Collections.Generic.IEnumerable`1"/>, <see cref="T:System.Collections.Generic.ICollection`1"/>,
            etc, so it is much simpler to implement.
            </para>
            <para>
            Use this in place of <see cref="T:Remotion.Collections.ICache`2"/> if you need a reliable data store which guarantees to keep values once inserted until
            they are removed.
            </para>
            </remarks>
        </member>
        <member name="T:Remotion.INullObject">
            <summary>
            Represents a nullable object according to the "Null Object Pattern".
            </summary>
        </member>
        <member name="P:Remotion.INullObject.IsNull">
            <summary>
            Gets a value indicating whether the object is a "Null Object".
            </summary>
        </member>
        <member name="M:Remotion.Collections.IDataStore`2.ContainsKey(`0)">
            <summary>
            Determines whether the store contains an element with the specified <paramref name="key"/>.
            </summary>
            <param name="key">The key to look up.</param>
            <returns>
            true if the store contains the specified key; otherwise, false.
            </returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:Remotion.Collections.IDataStore`2.Add(`0,`1)">
            <summary>
            Adds a new element to the store.
            </summary>
            <param name="key">The key of the new element.</param>
            <param name="value">The value of the new element.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException">An item with an equal key already exists in the store.</exception>
        </member>
        <member name="M:Remotion.Collections.IDataStore`2.Remove(`0)">
            <summary>
            Removes the element with the specified key from the store, if any.
            </summary>
            <param name="key">The key of the element to be removed.</param>
            <returns>true if the item was found in the store; otherwise, false.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:Remotion.Collections.IDataStore`2.Clear">
            <summary>
            Removes all elements from the store.
            </summary>
        </member>
        <member name="M:Remotion.Collections.IDataStore`2.GetValueOrDefault(`0)">
            <summary>
            Gets the value of the element with the specified key, or <typeparamref name="TValue"/>'s default value if no such element exists.
            </summary>
            <param name="key">The key to look up.</param>
            <returns>The value of the element, or the default value if no such element exists.</returns>
        </member>
        <member name="M:Remotion.Collections.IDataStore`2.TryGetValue(`0,`1@)">
            <summary>
            Tries to get the value of the element with the specified key.
            </summary>
            <param name="key">The key to look up.</param>
            <param name="value">The value of the element with the specified key, or <typeparamref name="TValue"/>'s default value if no such element 
            exists.</param>
            <returns>true if an element with the specified key was found; otherwise, false.</returns>
        </member>
        <member name="M:Remotion.Collections.IDataStore`2.GetOrCreateValue(`0,System.Func{`0,`1})">
            <summary>
            Gets the value of the element with the specified key, creating a new one if none exists.
            </summary>
            <param name="key">The key of the element to be retrieved.</param>
            <param name="creator">A delegate used for creating a new element if none exists.</param>
            <returns>The value of the element that was found or created.</returns>
        </member>
        <member name="P:Remotion.Collections.IDataStore`2.Item(`0)">
            <summary>
            Gets or sets the value of the element with the specified key.
            </summary>
            <value>The value of the element.</value>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.Collections.Generic.KeyNotFoundException">The element whose value should be retrieved could not be found.</exception>
        </member>
        <member name="T:Remotion.Collections.ExpiringDataStoreFactory">
            <summary>
            The <see cref="T:Remotion.Collections.ExpiringDataStoreFactory"/> provides factory methods to create new expired data stores.
            </summary>
        </member>
        <member name="M:Remotion.Collections.ExpiringDataStoreFactory.Create``4(Remotion.Collections.IExpirationPolicy{``1,``2,``3},System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Creates a <see cref="T:Remotion.Collections.ExpiringDataStore`4"/> instance that is not thread-safe and uses the specified
            <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>.
            </summary>
            <typeparam name="TKey">The type of the keys.</typeparam>
            <typeparam name="TValue">The type of the values.</typeparam>
            <typeparam name="TExpirationInfo">The type of the expiration info used by the <paramref name="policy"/>.</typeparam>
            <typeparam name="TScanInfo">The type of the scan info used by the <paramref name="policy"/>.</typeparam>
            <param name="policy">The policy that is used to check for expired items.</param>
            <param name="comparer">The comparer to use for comparing keys.</param>
            <returns>
            A <see cref="T:Remotion.Collections.ExpiringDataStore`4"/> instances for storing keys and values.
            </returns>
        </member>
        <member name="M:Remotion.Collections.ExpiringDataStoreFactory.CreateWithLocking``4(Remotion.Collections.IExpirationPolicy{``1,``2,``3},System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Creates a <see cref="T:Remotion.Collections.LockingDataStoreDecorator`2"/> instance that is thread-safe and uses the specified
            <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>.
            </summary>
            <typeparam name="TKey">The type of the keys.</typeparam>
            <typeparam name="TValue">The type of the values.</typeparam>
            <typeparam name="TExpirationInfo">The type of the expiration info used by the <paramref name="policy"/>.</typeparam>
            <typeparam name="TScanInfo">The type of the scan info used by the <paramref name="policy"/>.</typeparam>
            <param name="comparer">The comparer to use for comparing keys.</param>
            <param name="policy">The policy that is used to check for expired items.</param>
            <returns>
            A <see cref="T:Remotion.Collections.LockingDataStoreDecorator`2"/> instances for storing keys and values in a thread-safe way.
            </returns>
            <remarks>
            The created instance uses a single lock (see <see cref="T:System.Threading.Monitor"/>) to guard the data store against multi-threaded access. It is well-suited
            for data stores in which the factory delegates passed to <see cref="M:Remotion.Collections.IDataStore`2.GetOrCreateValue(`0,System.Func{`0,`1})"/> only take a short time to 
            complete. When the factory delegates take a long time to execute, consider using <see cref="M:Remotion.Collections.ExpiringDataStoreFactory.CreateWithLazyLocking``4(Remotion.Collections.IExpirationPolicy{Remotion.DoubleCheckedLockingContainer{Remotion.Collections.LazyLockingDataStoreAdapter{``0,``1}.Wrapper},``2,``3},System.Collections.Generic.IEqualityComparer{``0})"/> 
            instead to reduce contention.
            </remarks>
        </member>
        <member name="M:Remotion.Collections.ExpiringDataStoreFactory.CreateWithLazyLocking``4(Remotion.Collections.IExpirationPolicy{Remotion.DoubleCheckedLockingContainer{Remotion.Collections.LazyLockingDataStoreAdapter{``0,``1}.Wrapper},``2,``3},System.Collections.Generic.IEqualityComparer{``0})">
            <summary>
            Creates a <see cref="T:Remotion.Collections.LazyLockingDataStoreAdapter`2"/> instance that is thread-safe and uses the specified
            <see cref="T:System.Collections.Generic.IEqualityComparer`1"/>.
            </summary>
            <typeparam name="TKey">The type of the keys.</typeparam>
            <typeparam name="TValue">The type of the values.</typeparam>
            <typeparam name="TExpirationInfo">The type of the expiration info used by the <paramref name="policy"/>.</typeparam>
            <typeparam name="TScanInfo">The type of the scan info used by the <paramref name="policy"/>.</typeparam>
            <param name="comparer">The comparer to use for comparing keys.</param>
            <param name="policy">The policy that is used to check for expired items.</param>
            <returns>
            A <see cref="T:Remotion.Collections.LazyLockingDataStoreAdapter`2"/> instances for storing keys and values in a thread-safe way.
            </returns>
            <remarks>
            The created instance uses a single lock (see <see cref="T:System.Threading.Monitor"/>) to guard the data store against multi-threaded access and additional,
            double-checked locks (see <see cref="T:Remotion.DoubleCheckedLockingContainer`1"/>) to protect each single value. It is well-suited for data stores
            in which the factory delegates passed to <see cref="M:Remotion.Collections.IDataStore`2.GetOrCreateValue(`0,System.Func{`0,`1})"/> take a long time to execute. When the factory
            delegates do not take a long time, consider using <see cref="M:Remotion.Collections.ExpiringDataStoreFactory.CreateWithLocking``4(Remotion.Collections.IExpirationPolicy{``1,``2,``3},System.Collections.Generic.IEqualityComparer{``0})"/> instead to reduce the number of locks used.
            </remarks>
        </member>
        <member name="T:Remotion.Collections.ICache`2">
            <summary>
            Provides a comnmon interface for caches, which provide efficient storage and retrieval for values that are costly to calculate.
            </summary>
            <typeparam name="TKey">The key type via which values should be indexed.</typeparam>
            <typeparam name="TValue">The type of the values to be stored in the cache.</typeparam>
            <remarks>
            Caches are only meant for performance improvement, they are not reliable data containers. Do not rely on values being present in the cache;
            caches might choose to remove individual items (or all their items) at any time. If a reliable store is needed, use 
            <see cref="T:System.Collections.Generic.IDictionary`2"/> or <see cref="T:Remotion.Collections.IDataStore`2"/>.
            </remarks>
        </member>
        <member name="T:Remotion.Collections.IExpirationPolicy`3">
            <summary>
            <see cref="T:Remotion.Collections.IExpirationPolicy`3"/> defines the API for implementations that handle value expiration. This is
            used by <see cref="T:Remotion.Collections.ExpiringDataStore`4"/>. 
            </summary>
            <typeparam name="TValue">The type of the values that can expire.</typeparam>
            <typeparam name="TExpirationInfo">The type of expiration metadata required by the concrete implementation. Implementations use expiration
            metadata to decide whether a value is expired.</typeparam>
            <typeparam name="TScanInfo">The type of scan metadata required by the concrete implementation. Implementations use scan metadata to decide
            whether all values should be rescanned for expiration.</typeparam>
        </member>
        <member name="T:Remotion.Collections.LazyLockingCachingAdapter`2">
            <summary>
            Adapts an implementation of <see cref="T:Remotion.Collections.ICache`2"/> that stores <see cref="T:Remotion.DoubleCheckedLockingContainer`1"/> holding
            lazily constructed values so that users can access those values without indirection, and in a thread-safe way. Use 
            <see cref="M:Remotion.Collections.CacheFactory.CreateWithLazyLocking``2"/> to create an instance of this type.
            </summary>
            <typeparam name="TKey">The type of the keys.</typeparam>
            <typeparam name="TValue">The type of the values.</typeparam>
            <threadsafety static="true" instance="true"/>
            <remarks>
            This class internally combines a <see cref="T:Remotion.Collections.LockingCacheDecorator`2"/> with <see cref="T:Remotion.DoubleCheckedLockingContainer`1"/>
            instances. This leads to the effect that the lock used for the synchronization of the data store is always held for a very short time only,
            even if the factory delegate for a specific value takes a long time to execute.
            </remarks>
        </member>
        <member name="T:Remotion.Collections.LazyLockingDataStoreAdapter`2">
            <summary>
            Adapts an implementation of <see cref="T:Remotion.Collections.IDataStore`2"/> that stores <see cref="T:Remotion.DoubleCheckedLockingContainer`1"/> holding
            lazily constructed values so that users can access those values without indirection, and in a thread-safe way. Use 
            <see cref="M:Remotion.Collections.DataStoreFactory.CreateWithLazyLocking``2"/> to create an instance of this type.
            </summary>
            <typeparam name="TKey">The type of the keys.</typeparam>
            <typeparam name="TValue">The type of the values.</typeparam>
            <threadsafety static="true" instance="true"/>
            <remarks>
            This class internally combines a <see cref="T:Remotion.Collections.LockingDataStoreDecorator`2"/> with <see cref="T:Remotion.DoubleCheckedLockingContainer`1"/>
            instances. This leads to the effect that the lock used for the synchronization of the data store is always held for a very short time only,
            even if the factory delegate for a specific value takes a long time to execute.
            </remarks>
        </member>
        <member name="T:Remotion.Collections.ReadOnlyCollectionDecorator`1">
            <summary>
            Read-only wrapper around an <see cref="T:System.Collections.Generic.ICollection`1"/> which itself explicitely implements <see cref="T:System.Collections.Generic.ICollection`1"/>.
            </summary>
            <remarks>
            Behaves analogue to <see cref="T:System.Collections.ObjectModel.ReadOnlyCollection`1"/>, i.e. not supported methods required by <see cref="T:System.Collections.Generic.ICollection`1"/> 
            throw <see cref="T:System.NotSupportedException"/>|s.
            <para/>
            </remarks>
        </member>
        <member name="T:Remotion.Collections.TimeSpanBasedExpirationPolicy`1">
            <summary>
            The <see cref="T:Remotion.Collections.TimeSpanBasedExpirationPolicy`1"/> handles values which can be expire based on <see cref="T:System.TimeSpan"/> periods.
            </summary>
        </member>
        <member name="T:Remotion.Configuration.ServiceLocation.ServiceLocationConfiguration">
            <summary>
            Configures the service location performed by <see cref="T:Remotion.ServiceLocation.SafeServiceLocator"/>.
            </summary>
        </member>
        <member name="M:Remotion.Configuration.ServiceLocation.ServiceLocationConfiguration.SetCurrent(Remotion.Configuration.ServiceLocation.ServiceLocationConfiguration)">
            <summary>
            Sets the <see cref="P:Remotion.Configuration.ServiceLocation.ServiceLocationConfiguration.Current"/> <see cref="T:Remotion.Configuration.ServiceLocation.ServiceLocationConfiguration"/> instance.
            </summary>
            <param name="configuration">The new configuration to set as the <see cref="P:Remotion.Configuration.ServiceLocation.ServiceLocationConfiguration.Current"/> configuration.</param>
        </member>
        <member name="M:Remotion.Configuration.ServiceLocation.ServiceLocationConfiguration.#ctor">
            <summary>
            Initializes a new default instance of the <see cref="T:Remotion.Configuration.ServiceLocation.ServiceLocationConfiguration"/> class. To load the configuration from a config file,
            use <see cref="M:Remotion.Configuration.ConfigurationWrapper.GetSection(System.String)"/> instead.
            </summary>
        </member>
        <member name="M:Remotion.Configuration.ServiceLocation.ServiceLocationConfiguration.CreateServiceLocatorProvider">
            <summary>
            Creates an <see cref="T:Remotion.ServiceLocation.IServiceLocatorProvider"/> instance as indicated by <see cref="P:Remotion.Configuration.ServiceLocation.ServiceLocationConfiguration.ServiceLocatorProvider"/>. If no 
            <see cref="P:Remotion.Configuration.ServiceLocation.ServiceLocationConfiguration.ServiceLocatorProvider"/> is set, an instance of <see cref="T:Remotion.ServiceLocation.DefaultServiceLocatorProvider"/> is returned.
            </summary>
            <returns>An new <see cref="T:Remotion.ServiceLocation.IServiceLocatorProvider"/> instance.</returns>
        </member>
        <member name="P:Remotion.Configuration.ServiceLocation.ServiceLocationConfiguration.Current">
            <summary>
            Gets the current <see cref="T:Remotion.Configuration.ServiceLocation.ServiceLocationConfiguration"/> instance. This is used by 
            <see cref="P:Remotion.ServiceLocation.SafeServiceLocator.Current"/> to retrieve an <see cref="T:Remotion.ServiceLocation.IServiceLocatorProvider"/> instance if no specific 
            <see cref="T:Microsoft.Practices.ServiceLocation.IServiceLocator"/> was configured via <see cref="M:Microsoft.Practices.ServiceLocation.ServiceLocator.SetLocatorProvider(Microsoft.Practices.ServiceLocation.ServiceLocatorProvider)"/>.
            </summary>
            <value>The current <see cref="T:Remotion.Configuration.ServiceLocation.ServiceLocationConfiguration"/>.</value>
        </member>
        <member name="P:Remotion.Configuration.ServiceLocation.ServiceLocationConfiguration.ServiceLocatorProvider">
            <summary>
            Gets a <see cref="T:Remotion.Configuration.TypeElement`1"/> describing the custom <see cref="T:Remotion.ServiceLocation.IServiceLocatorProvider"/> to be used. This provider defines
            the <see cref="T:Microsoft.Practices.ServiceLocation.IServiceLocator"/> to be used by <see cref="P:Remotion.ServiceLocation.SafeServiceLocator.Current"/> if no custom <see cref="T:Microsoft.Practices.ServiceLocation.IServiceLocator"/> was
            configured using <see cref="M:Microsoft.Practices.ServiceLocation.ServiceLocator.SetLocatorProvider(Microsoft.Practices.ServiceLocation.ServiceLocatorProvider)"/>.
            </summary>
            <value>A <see cref="T:Remotion.Configuration.TypeElement`1"/> describing the custom <see cref="T:Remotion.ServiceLocation.IServiceLocatorProvider"/> type to be used.</value>
        </member>
        <member name="T:Remotion.Context.ISafeContextStorageProvider">
            <summary>
            Common interface for classes implementing a storage mechanism for <see cref="T:Remotion.Context.SafeContext"/>.
            </summary>
        </member>
        <member name="M:Remotion.Context.ISafeContextStorageProvider.GetData(System.String)">
            <summary>
            Retrieves a data item from the context storage.
            </summary>
            <param name="key">The key identifying the data item.</param>
            <returns>The data item identified by the given key, or <see langword="null"/> if no such item exists in the storage.</returns>
        </member>
        <member name="M:Remotion.Context.ISafeContextStorageProvider.SetData(System.String,System.Object)">
            <summary>
            Sets a data item in the context storage, overwriting a previous value identified by the same key.
            </summary>
            <param name="key">The key identifying the data item.</param>
            <param name="value">The value to be stored in the context storage.</param>
        </member>
        <member name="M:Remotion.Context.ISafeContextStorageProvider.FreeData(System.String)">
            <summary>
            Frees the resources used by a specific data item in the context storage.
            </summary>
            <param name="key">The key identifying the data item to be freed.</param>
        </member>
        <member name="T:Remotion.Context.SafeContext">
            <summary>
            Superior alternative to the <see cref="T:System.ThreadStaticAttribute"/> and <see cref="T:System.Runtime.Remoting.Messaging.CallContext"/> for making member variables thread safe that 
            also works with ASP.NET threads.
            </summary>
            <remarks>
            <para>
            The data managed by this class is by default stored in the <see cref="T:System.Runtime.Remoting.Messaging.CallContext"/>, but the storage provider can be replaced by application 
            code if needed. Replacements for the storage provider must guarantee that all data stored by the <see cref="T:Remotion.Context.SafeContext"/> is thread-local.
            </para>
            <para>
            The Remotion.Web assembly by default replaces the storage provider with one that stores all data in the <see cref="T:System.Web.HttpContext"/>. 
            This ensures that <see cref="T:Remotion.Context.SafeContext"/> works as expected in ASP.NET environments when a session migrates between threads.
            </para>
            </remarks>
            <threadsafety>
            The data managed by this class is thread-local. The class is safe to be used from multiple threads at the same time, but each thread will have 
            its own copy of the data.
            </threadsafety>
        </member>
        <member name="T:Remotion.Reflection.DelegateFactory">
            <summary>
            Extracts signatures from delegate types and uses <see cref="T:System.Linq.Expressions.LambdaExpression"/> to create delegates enabling their efficient invocation.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.IDelegateFactory">
            <summary>
            Extracts signatures from delegate types and delegates for their efficient invocation.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.MemberSignatures.EventSignature">
            <summary>
            Represents an event signature and allows signatures to be compared to each other.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.MemberSignatures.IMemberSignature">
            <summary>
            Defines a common interface for equatable member signatures.
            That is <see cref="T:Remotion.Reflection.MemberSignatures.MethodSignature"/>, <see cref="T:Remotion.Reflection.MemberSignatures.FieldSignature"/>, <see cref="T:Remotion.Reflection.MemberSignatures.PropertySignature"/> and <see cref="T:Remotion.Reflection.MemberSignatures.EventSignature"/>.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.MemberSignatures.FieldSignature">
            <summary>
            Represents a field signature and allows signatures to be compared to each other.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.MemberSignatures.MemberNamedAndSignatureEqualityComparer">
            <summary>
            Compares two members for equality by considering their name and signature.
            This comparer does not support comparing <see langword="null" /> values.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.MemberSignatures.MemberSignatureProvider">
            <summary>
            Provides <see cref="T:Remotion.Reflection.MemberSignatures.IMemberSignature"/>s for <see cref="T:System.Reflection.MemberInfo"/>s.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.MemberSignatures.MethodSignature">
            <summary>
            Represents a method signature and allows signatures to be compared to each other.
            </summary>
            <remarks>
            <para>
            This class does not support closed generic methods, only generic method definitions are supported.
            </para>
            <para>
            The signature currently does not include custom modifiers.
            </para>
            <para>
            For simplicity, this class assumes that type or namespace names cannot contain the character "[". It also assumes that the full name of a type 
            (namespace, enclosing type (if any), and simple  type name) is enough to identify a type - assembly information is not used when comparing 
            signatures.
            </para>
            </remarks>
        </member>
        <member name="T:Remotion.Reflection.MemberSignatures.PropertySignature">
            <summary>
            Represents a property signature and allows signatures to be compared to each other.
            </summary>
        </member>
        <member name="T:Remotion.SafeContextSingleton`1">
            <summary>
            Provides automatic "Singleton" behavior based on the <see cref="T:Remotion.Context.SafeContext"/> class.
            </summary>
            <typeparam name="T">The type for which a single instance should be held in the <see cref="T:Remotion.Context.SafeContext"/>.</typeparam>
            <remarks>
            This class stores a single instance of <typeparamref name="T"/> in the <see cref="T:Remotion.Context.SafeContext"/>. Use it to ensure that exactly one 
            instance of <typeparamref name="T"/> exists per thread, web context, or the respective current <see cref="T:Remotion.Context.SafeContext"/> policy.
            </remarks>
            <threadsafety>
            The data managed by this class is held in the <see cref="T:Remotion.Context.SafeContext"/> and therefore thread-local. The class is safe to be used from multiple
            threads at the same time, but each thread will have its own copy of the data.
            </threadsafety>
        </member>
        <member name="T:Remotion.Design.IDesignModeHelper">
            <summary>
            The <see cref="T:Remotion.Design.IDesignModeHelper"/> interface defines methods to encapsulate the access to various design-mode properties of a project.
            It is intended to be used by components offering design-time support.
            </summary>
        </member>
        <member name="T:Remotion.Diagnostics.DebuggerInterface">
            <summary>
            Provides an interface to the debugger. This functionality is also provided by the <see cref="T:System.Diagnostics.Debugger"/> class, but 
            <see cref="T:Remotion.Diagnostics.DebuggerInterface"/> implements <see cref="T:Remotion.Diagnostics.IDebuggerInterface"/>.
            </summary>
        </member>
        <member name="T:Remotion.Diagnostics.IDebuggerInterface">
            <summary>
            Provides an API for classes interfacing with the debugger. This functionality is also provided by the <see cref="T:System.Diagnostics.Debugger"/> class, but 
            <see cref="T:Remotion.Diagnostics.IDebuggerInterface"/> is implemented as an interface and allows alternative implementations for testing, custom debuggers, or other
            extensibility.
            </summary>
        </member>
        <member name="T:Remotion.IAdapter">
            <summary>
            Marker interface, used as type parameter for the <see cref="M:Remotion.BridgeInterfaces.IAdapterRegistryImplementation.SetAdapter(System.Type,Remotion.IAdapter)"/> and 
            <see cref="M:Remotion.BridgeInterfaces.IAdapterRegistryImplementation.GetAdapter``1"/> methods of <see cref="T:Remotion.AdapterRegistry"/>.
            </summary>
        </member>
        <member name="T:Remotion.ServiceLocation.ConcreteImplementationAttribute">
            <summary>
            Defines the concrete implementation for a service type (usually an interface or abstract class) as well as its <see cref="T:Remotion.ServiceLocation.LifetimeKind"/>.
            This attribute is used by the DefaultServiceProvider to determine how to instantiate a service type. Mutiple 
            <see cref="T:Remotion.ServiceLocation.ConcreteImplementationAttribute"/> istances can be applied to a single service type. They are not inherited.
            </summary>
        </member>
        <member name="M:Remotion.ServiceLocation.ConcreteImplementationAttribute.#ctor(System.String,System.Boolean)">
            <summary>
            Defines a concrete implementation for a service type by means of a type name template. The template can contain placeholders such as
            "&lt;version&gt;" and "&lt;publicKeyToken&gt;" that are replaced with the version and public key token of the re-motion assemblies when
            the type is resolved. See <see cref="T:Remotion.ServiceLocation.TypeNameTemplateResolver"/> for details.
            </summary>
            <param name="typeNameTemplate">A type name indicating the concrete implementation for the service type, optionally containing
            placeholders.</param>
            <param name="ignoreIfNotFound">A boolean indicating whether the attribute should be ignored if the implementation type can not be loaded.
            The default is <see langword="false"/>.</param>
        </member>
        <member name="M:Remotion.ServiceLocation.ConcreteImplementationAttribute.#ctor(System.Type)">
            <summary>
            Defines a concrete implementation for a service type.
            </summary>
            <param name="type">The type representing the concrete implementation for the service type.</param>
        </member>
        <member name="P:Remotion.ServiceLocation.ConcreteImplementationAttribute.TypeNameTemplate">
            <summary>
            Gets the type name template for the concrete implementation type. The template can contain placeholders and can be resolved using the
            <see cref="T:Remotion.ServiceLocation.TypeNameTemplateResolver"/> class.
            </summary>
            <value>The type name template.</value>
        </member>
        <member name="P:Remotion.ServiceLocation.ConcreteImplementationAttribute.IgnoreIfNotFound">
            <summary>
            Gets a boolean indicating whether the attribute should be ignored if the implementation type can not be loaded.
            </summary>
            <value>A boolean indicating whether the attribute should be ignored if the implementation type can not be loaded.</value>
        </member>
        <member name="P:Remotion.ServiceLocation.ConcreteImplementationAttribute.Lifetime">
            <summary>
            Gets or sets the lifetime of instances of the concrete implementation type. The lifetime is used by service locators to control when to reuse 
            instances of the concrete implementation type and when to create new ones. The default value is <see cref="F:Remotion.ServiceLocation.LifetimeKind.Instance"/>.
            </summary>
            <value>The lifetime of instances of the concrete implementation type.</value>
        </member>
        <member name="P:Remotion.ServiceLocation.ConcreteImplementationAttribute.Position">
            <summary>
            Gets the position of the concrete implementation in the list of all concrete implementations for the respective service type. The position
            does not denote the exact index; instead, it only influences the relative ordering of this implementation with respect to the other
            implementations.
            </summary>
            <value>The position of the concrete implementation in the list of all concrete implementations.</value>
        </member>
        <member name="T:Remotion.ServiceLocation.DefaultServiceLocatorProvider">
            <summary>
            Implements <see cref="T:Remotion.ServiceLocation.IServiceLocatorProvider"/> by providing instances of <see cref="T:Remotion.ServiceLocation.DefaultServiceLocator"/>.
            </summary>
        </member>
        <member name="T:Remotion.ServiceLocation.IServiceLocatorProvider">
            <summary>
            Defines an API for classes providing a <see cref="T:Microsoft.Practices.ServiceLocation.IServiceLocator"/> implementation. This is used by <see cref="T:Remotion.ServiceLocation.SafeServiceLocator"/> in order 
            to retrieve the default <see cref="T:Microsoft.Practices.ServiceLocation.IServiceLocator"/> if no custom one was set.
            </summary>
        </member>
        <member name="T:Remotion.ServiceLocation.LifetimeKind">
            <summary>
            Defines the lifetime of instances of a type managed by a service locator.
            </summary>
        </member>
        <member name="F:Remotion.ServiceLocation.LifetimeKind.Singleton">
            <summary>
            One instance is created and then reused every time an instance of the type is requested. This is the most efficient 
            <see cref="T:Remotion.ServiceLocation.LifetimeKind"/>, and it should be used whenever possible. However, in cases where the service locator is used from multiple threads,
            the <see cref="F:Remotion.ServiceLocation.LifetimeKind.Singleton"/> lifetime kind requires the instantiated type to be safe for multi-threading. Use <see cref="F:Remotion.ServiceLocation.LifetimeKind.Instance"/> when an
            implementation is not thread-safe.
            </summary>
        </member>
        <member name="F:Remotion.ServiceLocation.LifetimeKind.Instance">
            <summary>
            A new instance is created every time an instance of the type is requested. This is the simplest <see cref="T:Remotion.ServiceLocation.LifetimeKind"/> and works
            well even in multi-threaded environments, but it might not be the most efficient one. Use <see cref="F:Remotion.ServiceLocation.LifetimeKind.Singleton"/> for more efficiency.
            </summary>
        </member>
        <member name="T:Remotion.ServiceLocation.ServiceImplementationInfo">
            <summary>
            Encapsulates a service implementation type and <see cref="T:Remotion.ServiceLocation.LifetimeKind"/>.
            </summary>
        </member>
        <member name="M:Remotion.ServiceLocation.ServiceImplementationInfo.#ctor(System.Type,Remotion.ServiceLocation.LifetimeKind)">
            <summary>
            Initializes a new instance of the <see cref="T:Remotion.ServiceLocation.ServiceImplementationInfo"/> struct.
            </summary>
            <param name="implementationType">The concrete implementation of the service type.</param>
            <param name="lifetime">The lifetime of the instances of <paramref name="implementationType"/>.</param>
        </member>
        <member name="M:Remotion.ServiceLocation.ServiceImplementationInfo.ToString">
            <inheritdoc />
        </member>
        <member name="P:Remotion.ServiceLocation.ServiceImplementationInfo.ImplementationType">
            <summary>
            Gets the concrete implementation type of the service.
            </summary>
            <value>The concrete implementation.</value>
        </member>
        <member name="P:Remotion.ServiceLocation.ServiceImplementationInfo.Lifetime">
            <summary>
            Gets the lifetime of the instances of <see cref="P:Remotion.ServiceLocation.ServiceImplementationInfo.ImplementationType"/>.
            </summary>
            <value>The lifetime of the instances.</value>
        </member>
        <member name="T:Remotion.ServiceLocation.TypeNameTemplateResolver">
            <summary>
            Provides functionality to resolve type name templates to actual types. Type name templates are assembly-qualified type names that contain
            "&lt;version&gt;" and "&lt;publicKeyToken&gt;" as placeholders for version and public key token. Those placeholders will be replaced with
            the version and public key token of a given reference <see cref="T:System.Reflection.Assembly"/>, then <see cref="T:Remotion.Reflection.TypeDiscovery.ContextAwareTypeDiscoveryUtility"/> is
            used to resolve the type.
            </summary>
        </member>
        <member name="T:Remotion.Logging.ILog">
            <summary>
            The <see cref="T:Remotion.Logging.ILog"/> interface declares methods for logging messages.
            </summary>
            <remarks>
        The <see cref="T:Remotion.Logging.ILog"/> interface is intended for implementing adapters to various logging frameworks.
      <note>
        The range of valid event ids is only guarenteed within the range of unsigned 16-bit integers.
      </note>
      <note type="inheritinfo">
        Implementors must support event ids within the range of unsigned 16-bit integers. The behavior outside this range is can be either truncation 
        of the event id or an <see cref="T:System.ArgumentOutOfRangeException"/>. Implementors must ensure that the log message is logged before an 
        <see cref="T:System.ArgumentOutOfRangeException"/> is thrown.
      </note>
    </remarks>
        </member>
        <member name="M:Remotion.Logging.ILog.Log(Remotion.Logging.LogLevel,System.Int32,System.Object,System.Exception)">
            <overloads>Log a message object with the specified <paramref name="logLevel"/>.</overloads>
            <summary>
            Log a message object with the specified <paramref name="logLevel"/> and <paramref name="eventID"/>,
            including the stack trace of <paramref name="exceptionObject"/>.
            </summary>
            <param name="logLevel">The <see cref="T:Remotion.Logging.LogLevel"/> of the message to be logged.</param><param name="eventID">The numeric identifier for the event.</param><param name="message">The message object to log.</param><param name="exceptionObject">The <see cref="T:System.Exception"/> to log, including its stack trace. Pass <see langword="null"/> to not log an exception.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.Log(Remotion.Logging.LogLevel,System.Int32,System.Object)">
            <summary>
            Log a message object with the specified <paramref name="logLevel"/> and <paramref name="eventID"/>.
            </summary>
            <param name="logLevel">The <see cref="T:Remotion.Logging.LogLevel"/> of the message to be logged.</param><param name="eventID">The numeric identifier for the event.</param><param name="message">The message object to log.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.Log(Remotion.Logging.LogLevel,System.Object,System.Exception)">
            <summary>
            Log a message object with the specified <paramref name="logLevel"/>,
            including the stack trace of <paramref name="exceptionObject"/>. 
            </summary>
            <param name="logLevel">The <see cref="T:Remotion.Logging.LogLevel"/> of the message to be logged.</param><param name="message">The message object to log.</param><param name="exceptionObject">The <see cref="T:System.Exception"/> to log, including its stack trace. Pass <see langword="null"/> to not log an exception.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.Log(Remotion.Logging.LogLevel,System.Object)">
            <summary>
            Log a message object with the specified <paramref name="logLevel"/>.
            </summary>
            <param name="logLevel">The <see cref="T:Remotion.Logging.LogLevel"/> of the message to be logged.</param><param name="message">The message object to log.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.LogFormat(Remotion.Logging.LogLevel,System.Int32,System.Exception,System.String,System.Object[])">
            <overloads>Log a formatted string with the specified <paramref name="logLevel"/>.</overloads>
            <summary>
            Log a formatted string with the specified <paramref name="logLevel"/> and <paramref name="eventID"/>,
            including the stack trace of <paramref name="exceptionObject"/>.
            </summary>
            <param name="logLevel">The <see cref="T:Remotion.Logging.LogLevel"/> of the message to be logged.</param><param name="eventID">The numeric identifier for the event.</param><param name="exceptionObject">The <see cref="T:System.Exception"/> to log, including its stack trace. Pass <see langword="null"/> to not log an exception.</param>
            <param name="format">A String containing zero or more format items.</param><param name="args">An Object array containing zero or more objects to format.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.LogFormat(Remotion.Logging.LogLevel,System.Int32,System.String,System.Object[])">
            <summary>
            Log a formatted string with the specified <paramref name="logLevel"/> and <paramref name="eventID"/>.
            </summary>
            <param name="logLevel">The <see cref="T:Remotion.Logging.LogLevel"/> of the message to be logged.</param><param name="eventID">The numeric identifier for the event.</param>
            <param name="format">A String containing zero or more format items.</param><param name="args">An Object array containing zero or more objects to format.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.LogFormat(Remotion.Logging.LogLevel,System.String,System.Object[])">
            <summary>
            Log a formatted string with the specified <paramref name="logLevel"/>.
            </summary>
            <param name="logLevel">The <see cref="T:Remotion.Logging.LogLevel"/> of the message to be logged.</param>
            <param name="format">A String containing zero or more format items.</param><param name="args">An Object array containing zero or more objects to format.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.LogFormat(Remotion.Logging.LogLevel,System.Exception,System.String,System.Object[])">
            <summary>
            Log a formatted string with the specified <paramref name="logLevel"/>,
            including the stack trace of <paramref name="exceptionObject"/>. 
            </summary>
            <param name="logLevel">The <see cref="T:Remotion.Logging.LogLevel"/> of the message to be logged.</param><param name="exceptionObject">The <see cref="T:System.Exception"/> to log, including its stack trace. Pass <see langword="null"/> to not log an exception.</param>
            <param name="format">A String containing zero or more format items.</param><param name="args">An Object array containing zero or more objects to format.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.LogFormat(Remotion.Logging.LogLevel,System.Enum,System.Exception,System.Object[])">
            <summary>
            Log a message and event id derived from the <paramref name="messageEnum"/> with the specified <paramref name="logLevel"/>, including the stack 
            trace of <paramref name="exceptionObject"/>.
            </summary>
            <param name="logLevel">The <see cref="T:Remotion.Logging.LogLevel"/> of the message to be logged.</param><param name="exceptionObject">The <see cref="T:System.Exception"/> to log, including its stack trace. Pass <see langword="null"/> to not log an exception.</param>
            <param name="messageEnum">
      An <see cref="T:System.Enum"/> value that is used to supply the event id and the message or format string. Must not be <see langword="null"/>.
    </param><param name="args">An Object array containing zero or more objects to format.</param>
            <remarks>
      The underlying <see cref="T:System.Int32"/> value of the <paramref name="messageEnum"/> is used as event id. 
      Use <see cref="T:Remotion.Utilities.EnumDescriptionAttribute"/> or <see cref="T:Remotion.Utilities.EnumDescriptionResourceAttribute"/> 
      to associate messages with the enum values.
    </remarks>
        </member>
        <member name="M:Remotion.Logging.ILog.LogFormat(Remotion.Logging.LogLevel,System.Enum,System.Object[])">
            <summary>
            Log a message and event id derived from the <paramref name="messageEnum"/> with the specified <paramref name="logLevel"/>.
            </summary>
            <param name="logLevel">The <see cref="T:Remotion.Logging.LogLevel"/> of the message to be logged.</param>
            <param name="messageEnum">
      An <see cref="T:System.Enum"/> value that is used to supply the event id and the message or format string. Must not be <see langword="null"/>.
    </param><param name="args">An Object array containing zero or more objects to format.</param>
            <remarks>
      The underlying <see cref="T:System.Int32"/> value of the <paramref name="messageEnum"/> is used as event id. 
      Use <see cref="T:Remotion.Utilities.EnumDescriptionAttribute"/> or <see cref="T:Remotion.Utilities.EnumDescriptionResourceAttribute"/> 
      to associate messages with the enum values.
    </remarks>
        </member>
        <member name="M:Remotion.Logging.ILog.Debug(System.Int32,System.Object,System.Exception)">
            <overloads>Log a message object with the <see cref="F:Remotion.Logging.LogLevel.Debug"/> level.</overloads>
            <summary>
            Log a message object with the <see cref="F:Remotion.Logging.LogLevel.Debug"/> level and <paramref name="eventID"/>,
            including the stack trace of <paramref name="exceptionObject"/>.
            </summary>
            <param name="eventID">The numeric identifier for the event.</param><param name="message">The message object to log.</param><param name="exceptionObject">The <see cref="T:System.Exception"/> to log, including its stack trace. Pass <see langword="null"/> to not log an exception.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.Debug(System.Int32,System.Object)">
            <summary>
            Log a message object with the <see cref="F:Remotion.Logging.LogLevel.Debug"/> level and <paramref name="eventID"/>.
            </summary>
            <param name="eventID">The numeric identifier for the event.</param><param name="message">The message object to log.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.Debug(System.Object,System.Exception)">
            <summary>
            Log a message object with the <see cref="F:Remotion.Logging.LogLevel.Debug"/> level,
            including the stack trace of <paramref name="exceptionObject"/>. 
            </summary>
            <param name="message">The message object to log.</param><param name="exceptionObject">The <see cref="T:System.Exception"/> to log, including its stack trace. Pass <see langword="null"/> to not log an exception.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.Debug(System.Object)">
            <summary>
            Log a message object with the <see cref="F:Remotion.Logging.LogLevel.Debug"/> level.
            </summary>
            <param name="message">The message object to log.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.DebugFormat(System.Int32,System.Exception,System.String,System.Object[])">
            <overloads>Log a formatted string with the <see cref="F:Remotion.Logging.LogLevel.Debug"/> level.</overloads>
            <summary>
            Log a formatted string with the <see cref="F:Remotion.Logging.LogLevel.Debug"/> level and <paramref name="eventID"/>,
            including the stack trace of <paramref name="exceptionObject"/>.
            </summary>
            <param name="eventID">The numeric identifier for the event.</param><param name="exceptionObject">The <see cref="T:System.Exception"/> to log, including its stack trace. Pass <see langword="null"/> to not log an exception.</param>
            <param name="format">A String containing zero or more format items.</param><param name="args">An Object array containing zero or more objects to format.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.DebugFormat(System.Int32,System.String,System.Object[])">
            <summary>
            Log a formatted string with the <see cref="F:Remotion.Logging.LogLevel.Debug"/> level and <paramref name="eventID"/>.
            </summary>
            <param name="eventID">The numeric identifier for the event.</param>
            <param name="format">A String containing zero or more format items.</param><param name="args">An Object array containing zero or more objects to format.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.DebugFormat(System.String,System.Object[])">
            <summary>
            Log a formatted string with the <see cref="F:Remotion.Logging.LogLevel.Debug"/> level.
            </summary>
            <param name="format">A String containing zero or more format items.</param><param name="args">An Object array containing zero or more objects to format.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.DebugFormat(System.Exception,System.String,System.Object[])">
            <summary>
            Log a formatted string with the <see cref="F:Remotion.Logging.LogLevel.Debug"/> level,
            including the stack trace of <paramref name="exceptionObject"/>. 
            </summary>
            <param name="exceptionObject">The <see cref="T:System.Exception"/> to log, including its stack trace. Pass <see langword="null"/> to not log an exception.</param>
            <param name="format">A String containing zero or more format items.</param><param name="args">An Object array containing zero or more objects to format.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.DebugFormat(System.Enum,System.Exception,System.Object[])">
            <summary>
            Log message and event id derived from the <paramref name="messageEnum"/> with the <see cref="F:Remotion.Logging.LogLevel.Debug"/> level, including the stack 
            trace of <paramref name="exceptionObject"/>.
            </summary>
            <param name="exceptionObject">The <see cref="T:System.Exception"/> to log, including its stack trace. Pass <see langword="null"/> to not log an exception.</param>
            <param name="messageEnum">
      An <see cref="T:System.Enum"/> value that is used to supply the event id and the message or format string. Must not be <see langword="null"/>.
    </param><param name="args">An Object array containing zero or more objects to format.</param>
            <remarks>
      The underlying <see cref="T:System.Int32"/> value of the <paramref name="messageEnum"/> is used as event id. 
      Use <see cref="T:Remotion.Utilities.EnumDescriptionAttribute"/> or <see cref="T:Remotion.Utilities.EnumDescriptionResourceAttribute"/> 
      to associate messages with the enum values.
    </remarks>
        </member>
        <member name="M:Remotion.Logging.ILog.DebugFormat(System.Enum,System.Object[])">
            <summary>
            Log message and event id derived from the <paramref name="messageEnum"/> with the <see cref="F:Remotion.Logging.LogLevel.Debug"/> level.
            </summary>
            <param name="messageEnum">
      An <see cref="T:System.Enum"/> value that is used to supply the event id and the message or format string. Must not be <see langword="null"/>.
    </param><param name="args">An Object array containing zero or more objects to format.</param>
            <remarks>
      The underlying <see cref="T:System.Int32"/> value of the <paramref name="messageEnum"/> is used as event id. 
      Use <see cref="T:Remotion.Utilities.EnumDescriptionAttribute"/> or <see cref="T:Remotion.Utilities.EnumDescriptionResourceAttribute"/> 
      to associate messages with the enum values.
    </remarks>
        </member>
        <member name="M:Remotion.Logging.ILog.Info(System.Int32,System.Object,System.Exception)">
            <overloads>Log a message object with the <see cref="F:Remotion.Logging.LogLevel.Info"/> level.</overloads>
            <summary>
            Log a message object with the <see cref="F:Remotion.Logging.LogLevel.Info"/> level and <paramref name="eventID"/>,
            including the stack trace of <paramref name="exceptionObject"/>.
            </summary>
            <param name="eventID">The numeric identifier for the event.</param><param name="message">The message object to log.</param><param name="exceptionObject">The <see cref="T:System.Exception"/> to log, including its stack trace. Pass <see langword="null"/> to not log an exception.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.Info(System.Int32,System.Object)">
            <summary>
            Log a message object with the <see cref="F:Remotion.Logging.LogLevel.Info"/> level and <paramref name="eventID"/>.
            </summary>
            <param name="eventID">The numeric identifier for the event.</param><param name="message">The message object to log.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.Info(System.Object,System.Exception)">
            <summary>
            Log a message object with the <see cref="F:Remotion.Logging.LogLevel.Info"/> level,
            including the stack trace of <paramref name="exceptionObject"/>. 
            </summary>
            <param name="message">The message object to log.</param><param name="exceptionObject">The <see cref="T:System.Exception"/> to log, including its stack trace. Pass <see langword="null"/> to not log an exception.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.Info(System.Object)">
            <summary>
            Log a message object with the <see cref="F:Remotion.Logging.LogLevel.Info"/> level.
            </summary>
            <param name="message">The message object to log.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.InfoFormat(System.Int32,System.Exception,System.String,System.Object[])">
            <overloads>Log a formatted string with the <see cref="F:Remotion.Logging.LogLevel.Info"/> level.</overloads>
            <summary>
            Log a formatted string with the <see cref="F:Remotion.Logging.LogLevel.Info"/> level and <paramref name="eventID"/>,
            including the stack trace of <paramref name="exceptionObject"/>.
            </summary>
            <param name="eventID">The numeric identifier for the event.</param><param name="exceptionObject">The <see cref="T:System.Exception"/> to log, including its stack trace. Pass <see langword="null"/> to not log an exception.</param>
            <param name="format">A String containing zero or more format items.</param><param name="args">An Object array containing zero or more objects to format.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.InfoFormat(System.Int32,System.String,System.Object[])">
            <summary>
            Log a formatted string with the <see cref="F:Remotion.Logging.LogLevel.Info"/> level and <paramref name="eventID"/>.
            </summary>
            <param name="eventID">The numeric identifier for the event.</param>
            <param name="format">A String containing zero or more format items.</param><param name="args">An Object array containing zero or more objects to format.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.InfoFormat(System.String,System.Object[])">
            <summary>
            Log a formatted string with the <see cref="F:Remotion.Logging.LogLevel.Info"/> level.
            </summary>
            <param name="format">A String containing zero or more format items.</param><param name="args">An Object array containing zero or more objects to format.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.InfoFormat(System.Exception,System.String,System.Object[])">
            <summary>
            Log a formatted string with the <see cref="F:Remotion.Logging.LogLevel.Info"/> level,
            including the stack trace of <paramref name="exceptionObject"/>. 
            </summary>
            <param name="exceptionObject">The <see cref="T:System.Exception"/> to log, including its stack trace. Pass <see langword="null"/> to not log an exception.</param>
            <param name="format">A String containing zero or more format items.</param><param name="args">An Object array containing zero or more objects to format.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.InfoFormat(System.Enum,System.Exception,System.Object[])">
            <summary>
            Log message and event id derived from the <paramref name="messageEnum"/> with the <see cref="F:Remotion.Logging.LogLevel.Info"/> level, including the stack 
            trace of <paramref name="exceptionObject"/>.
            </summary>
            <param name="exceptionObject">The <see cref="T:System.Exception"/> to log, including its stack trace. Pass <see langword="null"/> to not log an exception.</param>
            <param name="messageEnum">
      An <see cref="T:System.Enum"/> value that is used to supply the event id and the message or format string. Must not be <see langword="null"/>.
    </param><param name="args">An Object array containing zero or more objects to format.</param>
            <remarks>
      The underlying <see cref="T:System.Int32"/> value of the <paramref name="messageEnum"/> is used as event id. 
      Use <see cref="T:Remotion.Utilities.EnumDescriptionAttribute"/> or <see cref="T:Remotion.Utilities.EnumDescriptionResourceAttribute"/> 
      to associate messages with the enum values.
    </remarks>
        </member>
        <member name="M:Remotion.Logging.ILog.InfoFormat(System.Enum,System.Object[])">
            <summary>
            Log message and event id derived from the <paramref name="messageEnum"/> with the <see cref="F:Remotion.Logging.LogLevel.Info"/> level.
            </summary>
            <param name="messageEnum">
      An <see cref="T:System.Enum"/> value that is used to supply the event id and the message or format string. Must not be <see langword="null"/>.
    </param><param name="args">An Object array containing zero or more objects to format.</param>
            <remarks>
      The underlying <see cref="T:System.Int32"/> value of the <paramref name="messageEnum"/> is used as event id. 
      Use <see cref="T:Remotion.Utilities.EnumDescriptionAttribute"/> or <see cref="T:Remotion.Utilities.EnumDescriptionResourceAttribute"/> 
      to associate messages with the enum values.
    </remarks>
        </member>
        <member name="M:Remotion.Logging.ILog.Warn(System.Int32,System.Object,System.Exception)">
            <overloads>Log a message object with the <see cref="F:Remotion.Logging.LogLevel.Warn"/> level.</overloads>
            <summary>
            Log a message object with the <see cref="F:Remotion.Logging.LogLevel.Warn"/> level and <paramref name="eventID"/>,
            including the stack trace of <paramref name="exceptionObject"/>.
            </summary>
            <param name="eventID">The numeric identifier for the event.</param><param name="message">The message object to log.</param><param name="exceptionObject">The <see cref="T:System.Exception"/> to log, including its stack trace. Pass <see langword="null"/> to not log an exception.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.Warn(System.Int32,System.Object)">
            <summary>
            Log a message object with the <see cref="F:Remotion.Logging.LogLevel.Warn"/> level and <paramref name="eventID"/>.
            </summary>
            <param name="eventID">The numeric identifier for the event.</param><param name="message">The message object to log.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.Warn(System.Object,System.Exception)">
            <summary>
            Log a message object with the <see cref="F:Remotion.Logging.LogLevel.Warn"/> level,
            including the stack trace of <paramref name="exceptionObject"/>. 
            </summary>
            <param name="message">The message object to log.</param><param name="exceptionObject">The <see cref="T:System.Exception"/> to log, including its stack trace. Pass <see langword="null"/> to not log an exception.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.Warn(System.Object)">
            <summary>
            Log a message object with the <see cref="F:Remotion.Logging.LogLevel.Warn"/> level.
            </summary>
            <param name="message">The message object to log.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.WarnFormat(System.Int32,System.Exception,System.String,System.Object[])">
            <overloads>Log a formatted string with the <see cref="F:Remotion.Logging.LogLevel.Warn"/> level.</overloads>
            <summary>
            Log a formatted string with the <see cref="F:Remotion.Logging.LogLevel.Warn"/> level and <paramref name="eventID"/>,
            including the stack trace of <paramref name="exceptionObject"/>.
            </summary>
            <param name="eventID">The numeric identifier for the event.</param><param name="exceptionObject">The <see cref="T:System.Exception"/> to log, including its stack trace. Pass <see langword="null"/> to not log an exception.</param>
            <param name="format">A String containing zero or more format items.</param><param name="args">An Object array containing zero or more objects to format.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.WarnFormat(System.Int32,System.String,System.Object[])">
            <summary>
            Log a formatted string with the <see cref="F:Remotion.Logging.LogLevel.Warn"/> level and <paramref name="eventID"/>.
            </summary>
            <param name="eventID">The numeric identifier for the event.</param>
            <param name="format">A String containing zero or more format items.</param><param name="args">An Object array containing zero or more objects to format.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.WarnFormat(System.String,System.Object[])">
            <summary>
            Log a formatted string with the <see cref="F:Remotion.Logging.LogLevel.Warn"/> level.
            </summary>
            <param name="format">A String containing zero or more format items.</param><param name="args">An Object array containing zero or more objects to format.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.WarnFormat(System.Exception,System.String,System.Object[])">
            <summary>
            Log a formatted string with the <see cref="F:Remotion.Logging.LogLevel.Warn"/> level,
            including the stack trace of <paramref name="exceptionObject"/>. 
            </summary>
            <param name="exceptionObject">The <see cref="T:System.Exception"/> to log, including its stack trace. Pass <see langword="null"/> to not log an exception.</param>
            <param name="format">A String containing zero or more format items.</param><param name="args">An Object array containing zero or more objects to format.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.WarnFormat(System.Enum,System.Exception,System.Object[])">
            <summary>
            Log a message and event id derived from the <paramref name="messageEnum"/> with the <see cref="F:Remotion.Logging.LogLevel.Warn"/> level, including the stack 
            trace of <paramref name="exceptionObject"/>.
            </summary>
            <param name="exceptionObject">The <see cref="T:System.Exception"/> to log, including its stack trace. Pass <see langword="null"/> to not log an exception.</param>
            <param name="messageEnum">
      An <see cref="T:System.Enum"/> value that is used to supply the event id and the message or format string. Must not be <see langword="null"/>.
    </param><param name="args">An Object array containing zero or more objects to format.</param>
            <remarks>
      The underlying <see cref="T:System.Int32"/> value of the <paramref name="messageEnum"/> is used as event id. 
      Use <see cref="T:Remotion.Utilities.EnumDescriptionAttribute"/> or <see cref="T:Remotion.Utilities.EnumDescriptionResourceAttribute"/> 
      to associate messages with the enum values.
    </remarks>
        </member>
        <member name="M:Remotion.Logging.ILog.WarnFormat(System.Enum,System.Object[])">
            <summary>
            Log a message and event id derived from the <paramref name="messageEnum"/> with the <see cref="F:Remotion.Logging.LogLevel.Warn"/> level.
            </summary>
            <param name="messageEnum">
      An <see cref="T:System.Enum"/> value that is used to supply the event id and the message or format string. Must not be <see langword="null"/>.
    </param><param name="args">An Object array containing zero or more objects to format.</param>
            <remarks>
      The underlying <see cref="T:System.Int32"/> value of the <paramref name="messageEnum"/> is used as event id. 
      Use <see cref="T:Remotion.Utilities.EnumDescriptionAttribute"/> or <see cref="T:Remotion.Utilities.EnumDescriptionResourceAttribute"/> 
      to associate messages with the enum values.
    </remarks>
        </member>
        <member name="M:Remotion.Logging.ILog.Error(System.Int32,System.Object,System.Exception)">
            <overloads>Log a message object with the <see cref="F:Remotion.Logging.LogLevel.Error"/> level.</overloads>
            <summary>
            Log a message object with the <see cref="F:Remotion.Logging.LogLevel.Error"/> level and <paramref name="eventID"/>,
            including the stack trace of <paramref name="exceptionObject"/>.
            </summary>
            <param name="eventID">The numeric identifier for the event.</param><param name="message">The message object to log.</param><param name="exceptionObject">The <see cref="T:System.Exception"/> to log, including its stack trace. Pass <see langword="null"/> to not log an exception.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.Error(System.Int32,System.Object)">
            <summary>
            Log a message object with the <see cref="F:Remotion.Logging.LogLevel.Error"/> level and <paramref name="eventID"/>.
            </summary>
            <param name="eventID">The numeric identifier for the event.</param><param name="message">The message object to log.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.Error(System.Object,System.Exception)">
            <summary>
            Log a message object with the <see cref="F:Remotion.Logging.LogLevel.Error"/> level,
            including the stack trace of <paramref name="exceptionObject"/>. 
            </summary>
            <param name="message">The message object to log.</param><param name="exceptionObject">The <see cref="T:System.Exception"/> to log, including its stack trace. Pass <see langword="null"/> to not log an exception.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.Error(System.Object)">
            <summary>
            Log a message object with the <see cref="F:Remotion.Logging.LogLevel.Error"/> level.
            </summary>
            <param name="message">The message object to log.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.ErrorFormat(System.Int32,System.Exception,System.String,System.Object[])">
            <overloads>Log a formatted string with the <see cref="F:Remotion.Logging.LogLevel.Error"/> level.</overloads>
            <summary>
            Log a formatted string with the <see cref="F:Remotion.Logging.LogLevel.Error"/> level and <paramref name="eventID"/>,
            including the stack trace of <paramref name="exceptionObject"/>.
            </summary>
            <param name="eventID">The numeric identifier for the event.</param><param name="exceptionObject">The <see cref="T:System.Exception"/> to log, including its stack trace. Pass <see langword="null"/> to not log an exception.</param>
            <param name="format">A String containing zero or more format items.</param><param name="args">An Object array containing zero or more objects to format.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.ErrorFormat(System.Int32,System.String,System.Object[])">
            <summary>
            Log a formatted string with the <see cref="F:Remotion.Logging.LogLevel.Error"/> level and <paramref name="eventID"/>.
            </summary>
            <param name="eventID">The numeric identifier for the event.</param>
            <param name="format">A String containing zero or more format items.</param><param name="args">An Object array containing zero or more objects to format.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.ErrorFormat(System.String,System.Object[])">
            <summary>
            Log a formatted string with the <see cref="F:Remotion.Logging.LogLevel.Error"/> level.
            </summary>
            <param name="format">A String containing zero or more format items.</param><param name="args">An Object array containing zero or more objects to format.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.ErrorFormat(System.Exception,System.String,System.Object[])">
            <summary>
            Log a formatted string with the <see cref="F:Remotion.Logging.LogLevel.Error"/> level,
            including the stack trace of <paramref name="exceptionObject"/>. 
            </summary>
            <param name="exceptionObject">The <see cref="T:System.Exception"/> to log, including its stack trace. Pass <see langword="null"/> to not log an exception.</param>
            <param name="format">A String containing zero or more format items.</param><param name="args">An Object array containing zero or more objects to format.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.ErrorFormat(System.Enum,System.Exception,System.Object[])">
            <summary>
            Log a message and event id derived from the <paramref name="messageEnum"/> with the <see cref="F:Remotion.Logging.LogLevel.Error"/> level, including the stack 
            trace of <paramref name="exceptionObject"/>.
            </summary>
            <param name="exceptionObject">The <see cref="T:System.Exception"/> to log, including its stack trace. Pass <see langword="null"/> to not log an exception.</param>
            <param name="messageEnum">
      An <see cref="T:System.Enum"/> value that is used to supply the event id and the message or format string. Must not be <see langword="null"/>.
    </param><param name="args">An Object array containing zero or more objects to format.</param>
            <remarks>
      The underlying <see cref="T:System.Int32"/> value of the <paramref name="messageEnum"/> is used as event id. 
      Use <see cref="T:Remotion.Utilities.EnumDescriptionAttribute"/> or <see cref="T:Remotion.Utilities.EnumDescriptionResourceAttribute"/> 
      to associate messages with the enum values.
    </remarks>
        </member>
        <member name="M:Remotion.Logging.ILog.ErrorFormat(System.Enum,System.Object[])">
            <summary>
            Log a message and event id derived from the <paramref name="messageEnum"/> with the <see cref="F:Remotion.Logging.LogLevel.Error"/> level.
            </summary>
            <param name="messageEnum">
      An <see cref="T:System.Enum"/> value that is used to supply the event id and the message or format string. Must not be <see langword="null"/>.
    </param><param name="args">An Object array containing zero or more objects to format.</param>
            <remarks>
      The underlying <see cref="T:System.Int32"/> value of the <paramref name="messageEnum"/> is used as event id. 
      Use <see cref="T:Remotion.Utilities.EnumDescriptionAttribute"/> or <see cref="T:Remotion.Utilities.EnumDescriptionResourceAttribute"/> 
      to associate messages with the enum values.
    </remarks>
        </member>
        <member name="M:Remotion.Logging.ILog.Fatal(System.Int32,System.Object,System.Exception)">
            <overloads>Log a message object with the <see cref="F:Remotion.Logging.LogLevel.Fatal"/> level.</overloads>
            <summary>
            Log a message object with the <see cref="F:Remotion.Logging.LogLevel.Fatal"/> level and <paramref name="eventID"/>,
            including the stack trace of <paramref name="exceptionObject"/>.
            </summary>
            <param name="eventID">The numeric identifier for the event.</param><param name="message">The message object to log.</param><param name="exceptionObject">The <see cref="T:System.Exception"/> to log, including its stack trace. Pass <see langword="null"/> to not log an exception.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.Fatal(System.Int32,System.Object)">
            <summary>
            Log a message object with the <see cref="F:Remotion.Logging.LogLevel.Fatal"/> level and <paramref name="eventID"/>.
            </summary>
            <param name="eventID">The numeric identifier for the event.</param><param name="message">The message object to log.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.Fatal(System.Object,System.Exception)">
            <summary>
            Log a message object with the <see cref="F:Remotion.Logging.LogLevel.Fatal"/> level,
            including the stack trace of <paramref name="exceptionObject"/>. 
            </summary>
            <param name="message">The message object to log.</param><param name="exceptionObject">The <see cref="T:System.Exception"/> to log, including its stack trace. Pass <see langword="null"/> to not log an exception.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.Fatal(System.Object)">
            <summary>
            Log a message object with the <see cref="F:Remotion.Logging.LogLevel.Fatal"/> level.
            </summary>
            <param name="message">The message object to log.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.FatalFormat(System.Int32,System.Exception,System.String,System.Object[])">
            <overloads>Log a formatted string with the <see cref="F:Remotion.Logging.LogLevel.Fatal"/> level.</overloads>
            <summary>
            Log a formatted string with the <see cref="F:Remotion.Logging.LogLevel.Fatal"/> level and <paramref name="eventID"/>,
            including the stack trace of <paramref name="exceptionObject"/>.
            </summary>
            <param name="eventID">The numeric identifier for the event.</param><param name="exceptionObject">The <see cref="T:System.Exception"/> to log, including its stack trace. Pass <see langword="null"/> to not log an exception.</param>
            <param name="format">A String containing zero or more format items.</param><param name="args">An Object array containing zero or more objects to format.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.FatalFormat(System.Int32,System.String,System.Object[])">
            <summary>
            Log a formatted string with the <see cref="F:Remotion.Logging.LogLevel.Fatal"/> level and <paramref name="eventID"/>.
            </summary>
            <param name="eventID">The numeric identifier for the event.</param>
            <param name="format">A String containing zero or more format items.</param><param name="args">An Object array containing zero or more objects to format.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.FatalFormat(System.String,System.Object[])">
            <summary>
            Log a formatted string with the <see cref="F:Remotion.Logging.LogLevel.Fatal"/> level.
            </summary>
            <param name="format">A String containing zero or more format items.</param><param name="args">An Object array containing zero or more objects to format.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.FatalFormat(System.Exception,System.String,System.Object[])">
            <summary>
            Log a formatted string with the <see cref="F:Remotion.Logging.LogLevel.Fatal"/> level,
            including the stack trace of <paramref name="exceptionObject"/>. 
            </summary>
            <param name="exceptionObject">The <see cref="T:System.Exception"/> to log, including its stack trace. Pass <see langword="null"/> to not log an exception.</param>
            <param name="format">A String containing zero or more format items.</param><param name="args">An Object array containing zero or more objects to format.</param>
        </member>
        <member name="M:Remotion.Logging.ILog.FatalFormat(System.Enum,System.Exception,System.Object[])">
            <summary>
            Log a message and event id derived from the <paramref name="messageEnum"/> with the <see cref="F:Remotion.Logging.LogLevel.Fatal"/> level, including the stack 
            trace of <paramref name="exceptionObject"/>.
            </summary>
            <param name="exceptionObject">The <see cref="T:System.Exception"/> to log, including its stack trace. Pass <see langword="null"/> to not log an exception.</param>
            <param name="messageEnum">
      An <see cref="T:System.Enum"/> value that is used to supply the event id and the message or format string. Must not be <see langword="null"/>.
    </param><param name="args">An Object array containing zero or more objects to format.</param>
            <remarks>
      The underlying <see cref="T:System.Int32"/> value of the <paramref name="messageEnum"/> is used as event id. 
      Use <see cref="T:Remotion.Utilities.EnumDescriptionAttribute"/> or <see cref="T:Remotion.Utilities.EnumDescriptionResourceAttribute"/> 
      to associate messages with the enum values.
    </remarks>
        </member>
        <member name="M:Remotion.Logging.ILog.FatalFormat(System.Enum,System.Object[])">
            <summary>
            Log a message and event id derived from the <paramref name="messageEnum"/> with the <see cref="F:Remotion.Logging.LogLevel.Fatal"/> level.
            </summary>
            <param name="messageEnum">
      An <see cref="T:System.Enum"/> value that is used to supply the event id and the message or format string. Must not be <see langword="null"/>.
    </param><param name="args">An Object array containing zero or more objects to format.</param>
            <remarks>
      The underlying <see cref="T:System.Int32"/> value of the <paramref name="messageEnum"/> is used as event id. 
      Use <see cref="T:Remotion.Utilities.EnumDescriptionAttribute"/> or <see cref="T:Remotion.Utilities.EnumDescriptionResourceAttribute"/> 
      to associate messages with the enum values.
    </remarks>
        </member>
        <member name="M:Remotion.Logging.ILog.IsEnabled(Remotion.Logging.LogLevel)">
            <summary>
            Checks if this logger is enabled for the given <see cref="T:Remotion.Logging.LogLevel"/>.
            </summary>
            <param name="logLevel">The log level to check for.</param>
            <returns>
              <see langword="true"/> if the specified log level is enabled; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="P:Remotion.Logging.ILog.IsDebugEnabled">
            <summary>
            Checks if this logger is enabled for the <see cref="F:Remotion.Logging.LogLevel.Debug"/> level.
            </summary>
        </member>
        <member name="P:Remotion.Logging.ILog.IsInfoEnabled">
            <summary>
            Checks if this logger is enabled for the <see cref="F:Remotion.Logging.LogLevel.Info"/> level.
            </summary>
        </member>
        <member name="P:Remotion.Logging.ILog.IsWarnEnabled">
            <summary>
            Checks if this logger is enabled for the <see cref="F:Remotion.Logging.LogLevel.Warn"/> level.
            </summary>
        </member>
        <member name="P:Remotion.Logging.ILog.IsErrorEnabled">
            <summary>
            Checks if this logger is enabled for the <see cref="F:Remotion.Logging.LogLevel.Error"/> level.
            </summary>
        </member>
        <member name="P:Remotion.Logging.ILog.IsFatalEnabled">
            <summary>
            Checks if this logger is enabled for the <see cref="F:Remotion.Logging.LogLevel.Fatal"/> level.
            </summary>
        </member>
        <member name="T:Remotion.Logging.ILogManager">
            <summary>
            The <see cref="T:Remotion.Logging.ILogManager"/> interface declares the methods available for retrieving a logger that implements
            <see cref="T:Remotion.Logging.ILog"/> and initializing the respective logging framework.
            </summary>
        </member>
        <member name="M:Remotion.Logging.ILogManager.GetLogger(System.String)">
            <summary>
            Gets or creates a logger.
            </summary>
            <param name="name">The name of the logger to retrieve.</param>
            <returns>A logger for the <paramref name="name"/> specified.</returns>
        </member>
        <member name="M:Remotion.Logging.ILogManager.GetLogger(System.Type)">
            <summary>
            Gets or creates a logger.
            </summary>
            <param name="type">The full name of <paramref name="type"/> will be used as the name of the logger to retrieve.</param>
            <returns>A logger for the fully qualified name of the <paramref name="type"/> specified.</returns>
        </member>
        <member name="M:Remotion.Logging.ILogManager.Initialize">
            <summary>
            Initializes the logging framework abstracted through the <see cref="T:Remotion.Logging.ILogManager"/> interface.
            </summary>
        </member>
        <member name="M:Remotion.Logging.ILogManager.InitializeConsole">
            <summary>
            Initializes the logging framework to log to the console.
            </summary>
        </member>
        <member name="M:Remotion.Logging.ILogManager.InitializeConsole(Remotion.Logging.LogLevel,Remotion.Logging.LogThreshold[])">
            <summary>
            Initializes the current logging framework to log to the console, configuring a given <see cref="T:Remotion.Logging.LogLevel"/> as the default threshold as well
            as specific thresholds for specific loggers.
            </summary>
            <param name="defaultThreshold">The threshold for logging. Only log messages of at least this <see cref="T:Remotion.Logging.LogLevel"/> are output to the console
            for all loggers not specifically configured via <paramref name="logThresholds"/>.</param>
            <param name="logThresholds">The thresholds for specific loggers.</param>
        </member>
        <member name="T:Remotion.Logging.LogExtensions">
            <summary>
            Provides extension methods used for logging.
            </summary>
        </member>
        <member name="M:Remotion.Logging.LogExtensions.LogAndReturn``1(``0,Remotion.Logging.ILog,Remotion.Logging.LogLevel,System.Func{``0,System.String})">
            <summary>
            Logs the given value and returns it to the caller. This is typically used to log a value returned by a method directly in the return 
            statement.
            </summary>
            <typeparam name="T">The (inferred) type of the value to be logged.</typeparam>
            <param name="value">The value to be logged.</param>
            <param name="log">The <see cref="T:Remotion.Logging.ILog"/> to log the value with.</param>
            <param name="logLevel">The <see cref="T:Remotion.Logging.LogLevel"/> to log the value at. If the <paramref name="log"/> does not support this level, the 
            <paramref name="messageCreator"/> is not called.</param>
            <param name="messageCreator">A function object building the message to be logged.</param>
            <returns>The <paramref name="value"/> passed in to the method.</returns>
        </member>
        <member name="T:Remotion.Logging.LogLevel">
            <summary>
            Defines the log levels available when logging through the <see cref="T:Remotion.Logging.ILog"/> interface.
            </summary>
        </member>
        <member name="F:Remotion.Logging.LogLevel.Debug">
            <summary>
            The <see cref="F:Remotion.Logging.LogLevel.Debug"/> level designates fine-grained informational events that are most useful to debug an application.
            </summary>
        </member>
        <member name="F:Remotion.Logging.LogLevel.Info">
            <summary>
            The <see cref="F:Remotion.Logging.LogLevel.Info"/> level designates informational messages that highlight the progress of the application at coarse-grained level. 
            </summary>
        </member>
        <member name="F:Remotion.Logging.LogLevel.Warn">
            <summary>
            The <see cref="F:Remotion.Logging.LogLevel.Warn"/> level designates potentially harmful situations.
            </summary>
        </member>
        <member name="F:Remotion.Logging.LogLevel.Error">
            <summary>
            The <see cref="F:Remotion.Logging.LogLevel.Error"/> level designates error events that might still allow the application to continue running. 
            </summary>
        </member>
        <member name="F:Remotion.Logging.LogLevel.Fatal">
            <summary>
            The <see cref="F:Remotion.Logging.LogLevel.Fatal"/> level designates very severe error events that will presumably lead the application to abort.
            </summary>
        </member>
        <member name="T:Remotion.Logging.LogManager">
            <summary>
            Use this class to create a logger implementing <see cref="T:Remotion.Logging.ILog"/> from the current <see cref="T:Remotion.Logging.ILogManager"/>.
            </summary>
            <remarks>
            Currently only <b>log4net</b> is supported as logging infrastructure.
            </remarks>
        </member>
        <member name="M:Remotion.Logging.LogManager.GetLogger(System.String)">
            <summary>
            Gets or creates a logger.
            </summary>
            <param name="name">The name of the logger to retrieve.</param>
            <returns>A logger for the <paramref name="name"/> specified.</returns>
        </member>
        <member name="M:Remotion.Logging.LogManager.GetLogger(System.Type)">
            <summary>
            Gets or creates a logger.
            </summary>
            <param name="type">The full name of <paramref name="type"/> will be used as the name of the logger to retrieve.</param>
            <returns>A logger for the fully qualified name of the <paramref name="type"/> specified.</returns>
        </member>
        <member name="M:Remotion.Logging.LogManager.Initialize">
            <summary>
            Initializes the current logging framework.
            </summary>
        </member>
        <member name="M:Remotion.Logging.LogManager.InitializeConsole">
            <summary>
            Initializes the current logging framework to log to the console.
            </summary>
        </member>
        <member name="M:Remotion.Logging.LogManager.InitializeConsole(Remotion.Logging.LogLevel,Remotion.Logging.LogThreshold[])">
            <summary>
            Initializes the current logging framework to log to the console, configuring a given <see cref="T:Remotion.Logging.LogLevel"/> as the default threshold as well
            as specific thresholds for specific loggers.
            </summary>
            <param name="defaultThreshold">The threshold for logging. Only log messages of at least this <see cref="T:Remotion.Logging.LogLevel"/> are output to the console
            for all loggers not specifically configured via <paramref name="logThresholds"/>.</param>
            <param name="logThresholds">The thresholds for specific loggers.</param>
        </member>
        <member name="T:Remotion.Logging.LogThreshold">
            <summary>
            Defines a <see cref="T:Remotion.Logging.LogLevel"/> as the threshold for a logger.
            </summary>
        </member>
        <member name="T:Remotion.PermanentGuidAttribute">
            <summary>
              Supplies an identifier that should remain constant even accross refactorings. Can be applied to reference types, properties and fields.
            </summary>
        </member>
        <member name="M:Remotion.PermanentGuidAttribute.#ctor(System.String)">
            <summary>
              Initializes a new instance of the <see cref="T:Remotion.PermanentGuidAttribute"/> class.
            </summary>
            <param name="value"> The <see cref="T:System.String"/> representation of a <see cref="T:System.Guid"/>. </param>
        </member>
        <member name="P:Remotion.PermanentGuidAttribute.Value">
            <summary>
              Gets the <see cref="T:System.Guid"/> supplied during initialization.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.ActionInvokerWrapper">
            <summary>
            Used to wrap an <see cref="T:Remotion.Reflection.IActionInvoker"/> object rather than returning it directly.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.IActionInvoker">
            <summary>
            This interface allows invokers with fixed arguments to be returned without references to their generic argument types. 
            </summary>
            <remarks>
            <p>Note that casting a <see cref="T:Remotion.Reflection.ActionInvoker"/> to an interface is a boxing operation, thus creating an object on the
            heap and garbage collecting it later. For very performance-critical scenarios, it be better to avoid this and accept the references to 
            the invoker's generic argument types.</p>
            <p>It is recommended to wrap this interface within a <see cref="T:Remotion.Reflection.ActionInvokerWrapper"/>, because returning an interface could lead to 
            ambigous castings if the final call to <see cref="M:Remotion.Reflection.IActionInvoker.With``1(``0)"/> is missing, while using structs will usually lead to a compile-time error as 
            expected.</p>
            </remarks>
        </member>
        <member name="T:Remotion.Reflection.FuncInvokerWrapper`1">
            <summary>
            Used to wrap an <see cref="T:Remotion.Reflection.IFuncInvoker`1"/> object rather than returning it directly.
            </summary>
            <typeparam name="TResult"> Return type of the method that will be invoked. </typeparam>
        </member>
        <member name="T:Remotion.Reflection.IFuncInvoker`1">
            <summary>
            This interface allows invokers with fixed arguments to be returned without references to their generic argument types. 
            </summary>
            <remarks>
            <p>Note that casting a <see cref="T:Remotion.Reflection.FuncInvoker"/> struct to an interface is a boxing operation, thus creating an object on the
            heap and garbage collecting it later. For very performance-critical scenarios, it be better to avoid this and accept the references to 
            the invoker's generic argument types.</p>
            <p>It is recommended to wrap this interface within a <see cref="T:Remotion.Reflection.FuncInvokerWrapper`1"/>, because returning an interface could lead to 
            ambigous castings if the final call to <see cref="M:Remotion.Reflection.IFuncInvoker`1.With``1(``0)"/> is missing, while using structs will usually lead to a compile-time error as 
            expected.</p>
            </remarks>
            <typeparam name="TResult"> Return type of the method that will be invoked. </typeparam>
        </member>
        <member name="T:Remotion.Reflection.IConstructorLookupInfo">
            <summary>
            Represents an object that can be used to lookup and dynamically invoke constructors of a specific defining type.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.IMemberInformation">
            <summary>
            Provides  information about the attributes of a member and provides access to member metadata.
            <seealso cref="T:Remotion.Reflection.IPropertyInformation"/>
            <seealso cref="T:Remotion.Reflection.IMethodInformation"/>
            </summary>
        </member>
        <member name="M:Remotion.Reflection.IMemberInformation.GetOriginalDeclaringType">
            <summary>
            Gets the type the member was originally declared on.
            </summary>
            <returns>The type the member was originally declared on.</returns>
            <remarks>If the member represented by this instance overrides a member from a base type, this method will return the base type.</remarks>
        </member>
        <member name="M:Remotion.Reflection.IMemberInformation.GetCustomAttribute``1(System.Boolean)">
            <summary>
            Gets the one custom attribute of type <typeparamref name="T"/> declared on this member, or null if no such attribute exists.
            </summary>
            <typeparam name="T">The type of attribute to retrieve.</typeparam>
            <param name="inherited">If set to true, the inheritance hierarchy is searched for the attribute. Otherwise, only the <see cref="P:Remotion.Reflection.IMemberInformation.DeclaringType"/>
            is checked.</param>
            <exception cref="T:System.Reflection.AmbiguousMatchException">More than one instance of the given attribute type <typeparamref name="T"/> is declared on this
            member.</exception>
            <returns>An instance of type <typeparamref name="T"/>, or <see langword="null"/> if no attribute of that type is declared on this member.</returns>
        </member>
        <member name="M:Remotion.Reflection.IMemberInformation.GetCustomAttributes``1(System.Boolean)">
            <summary>
            Gets the custom attributes of type <typeparamref name="T"/> declared on this member, or null if no such attribute exists.
            </summary>
            <typeparam name="T">The type of the attributes to retrieve.</typeparam>
            <param name="inherited">If set to true, the inheritance hierarchy is searched for the attributes. Otherwise, only the <see cref="P:Remotion.Reflection.IMemberInformation.DeclaringType"/>
            is checked.</param>
            <returns>An array of the attributes of type <typeparamref name="T"/> declared on this member, or an empty array if no attribute of
            that type is declared on this member.</returns>
        </member>
        <member name="M:Remotion.Reflection.IMemberInformation.IsDefined``1(System.Boolean)">
            <summary>
            Determines whether a custom attribute of the specified type <typeparamref name="T"/> is defined on the member.
            </summary>
            <typeparam name="T">The type of attribute to search for.</typeparam>
            <param name="inherited">If set to true, the inheritance hierarchy is searched for the attribute. Otherwise, only the type
            is checked.</param>
            <returns>
            True if a custom attribute of the specified type is defined on the member; otherwise, false.
            </returns>
        </member>
        <member name="P:Remotion.Reflection.IMemberInformation.Name">
            <summary>
            Gets the simple name of the member identifying it within its declaring type.
            </summary>
            <value>The simple property name.</value>
        </member>
        <member name="P:Remotion.Reflection.IMemberInformation.DeclaringType">
            <summary>
            Gets the type declaring the member.
            </summary>
            <value>The declaring type of the member.</value>
        </member>
        <member name="T:Remotion.Reflection.IMethodInformation">
            <summary>
            Provides information about a method and offers a way to invoke the method.
            </summary>
        </member>
        <member name="M:Remotion.Reflection.IMethodInformation.Invoke(System.Object,System.Object[])">
            <summary>
            Invokes the method on the given instance using the given parameters.
            </summary>
            <param name="instance">The instance on which to invoke the method. If the method is static this argument is ignored.</param>
            <param name="parameters">An argument list for the invoked method.</param>
            <returns>An object containing the return value of the invoked method.</returns>
        </member>
        <member name="M:Remotion.Reflection.IMethodInformation.FindInterfaceImplementation(System.Type)">
            <summary>
            Finds the implementation <see cref="T:Remotion.Reflection.IMethodInformation"/> corresponding to this <see cref="T:Remotion.Reflection.IMethodInformation"/> on the given 
            <see cref="T:System.Type"/>. This <see cref="T:Remotion.Reflection.IMethodInformation"/> object must denote an interface method.
            </summary>
            <param name="implementationType">The type to search for an implementation of this <see cref="T:Remotion.Reflection.IMethodInformation"/> on.</param>
            <returns>An instance of <see cref="T:Remotion.Reflection.IMethodInformation"/> describing the method implementing this interface 
            <see cref="T:Remotion.Reflection.IMethodInformation"/> on <paramref name="implementationType"/>, or <see langword="null"/> if the 
            <paramref name="implementationType"/> does not implement the interface.</returns>
            <exception cref="T:System.ArgumentException">The <paramref name="implementationType"/> is itself an interface.</exception>
            <exception cref="T:System.InvalidOperationException">This <see cref="T:Remotion.Reflection.IMethodInformation"/> does not describe an interface method.</exception>
        </member>
        <member name="M:Remotion.Reflection.IMethodInformation.FindDeclaringProperty">
            <summary>
            Finds the property declaration corresponding to this <see cref="T:Remotion.Reflection.IMethodInformation"/> on the given <see cref="T:System.Type"/> and it's base types.
            </summary>
            <returns>Returns the <see cref="T:Remotion.Reflection.IPropertyInformation"/> of the declared property, or <see langword="null"/> if no corresponding property was 
            found.</returns>
        </member>
        <member name="M:Remotion.Reflection.IMethodInformation.FindInterfaceDeclarations">
            <summary>
            Finds the interface declaration for this <see cref="T:Remotion.Reflection.IMethodInformation"/>, returning <see langword="null"/> if this 
            <see cref="T:Remotion.Reflection.IMethodInformation"/> is not an implementation of an interface member.
            </summary>
            <returns>An <see cref="T:Remotion.Reflection.IMethodInformation"/> for the interface member this <see cref="T:Remotion.Reflection.IMethodInformation"/> implements, or 
            <see langword="null"/> if this <see cref="T:Remotion.Reflection.IMethodInformation"/> is not an implementation of an interface member.</returns>
            <exception cref="T:System.InvalidOperationException">This <see cref="T:Remotion.Reflection.IMethodInformation"/> is itself an interface member, so it cannot have an 
            interface declaration.</exception>
        </member>
        <member name="M:Remotion.Reflection.IMethodInformation.GetFastInvoker``1">
            <summary>
            Returns a delegate invoking the method described by this <see cref="T:Remotion.Reflection.IMethodInformation"/>.
            </summary>
            <typeparam name="T">
            The delegate type. The number of parameters and the fact whether or not a return type is present must match the signature of the method. The
            types need not match exactly; the values will be converted at run-time. 
            </typeparam>
            <returns>A delegate of type <typeparamref name="T"/> invoking the method described by this <see cref="T:Remotion.Reflection.IMethodInformation"/>.</returns>
        </member>
        <member name="M:Remotion.Reflection.IMethodInformation.GetFastInvoker(System.Type)">
            <summary>
            Returns a delegate invoking the method described by this <see cref="T:Remotion.Reflection.IMethodInformation"/>.
            </summary>
            <param name="delegateType">
            The delegate type. The number of parameters and the fact whether or not a return type is present must match the signature of the method. The
            types need not match exactly; the values will be converted at run-time. 
            </param>
            <returns>A delegate of type <paremref name="delegateType"/> invoking the method described by this <see cref="T:Remotion.Reflection.IMethodInformation"/>.</returns>
        </member>
        <member name="P:Remotion.Reflection.IMethodInformation.ReturnType">
            <summary>
            Gets the return type of the method.
            </summary>
            <value>The return type of the method.</value>
        </member>
        <member name="T:Remotion.Reflection.IPropertyInformation">
            <summary>
            Provides information about a property and offers a way to get or set the property's value.
            </summary>
        </member>
        <member name="M:Remotion.Reflection.IPropertyInformation.GetValue(System.Object,System.Object[])">
            <summary>
            Gets the value of the property for the given instance.
            </summary>
            <param name="instance">The instance to retrieve the value for, or <see langword="null"/> for a static property.</param>
            <param name="indexParameters">The index parameters to be used for property value retrieval.</param>
            <returns>The property's value for the given instance.</returns>
            <exception cref="T:System.ArgumentException">
            <para>The type of the elements of the <paramref name="indexParameters"/> array does not match the index argument types expected by the
            property.</para>
            <para>-or-</para>
            <para>The get accessor cannot be found.</para>
            </exception>
            <exception cref="T:System.Reflection.TargetException">The <paramref name="instance"/> parameter is <see langword="null"/> although the property is not a static
            property or it does not match the property's declaring type.</exception>
            <exception cref="T:System.Reflection.TargetParameterCountException">The number of items in the <paramref name="indexParameters"/> array does not match the number
            of index parameters expected by the property.</exception>
            <exception cref="T:System.Reflection.TargetInvocationException">The property's get method throw an exception, see the <see cref="P:System.Exception.InnerException"/>
            property.</exception>
            <exception cref="T:System.MethodAccessException">The accessor was private or protected and could not be executed.</exception>
        </member>
        <member name="M:Remotion.Reflection.IPropertyInformation.SetValue(System.Object,System.Object,System.Object[])">
            <summary>
            Sets the value of the property for the given instance.
            </summary>
            <param name="instance">The instance to set the value for, or <see langword="null"/> for a static property.</param>
            <param name="value">The property's value for the given instance.</param>
            <param name="indexParameters">The index parameters to be used for setting the property value.</param>
            <exception cref="T:System.ArgumentException">
            <para>The type of the elements of the <paramref name="indexParameters"/> array does not match the index argument types expected by the
            property.</para>
            <para>-or-</para>
            <para>The set accessor cannot be found.</para>
            </exception>
            <exception cref="T:System.Reflection.TargetException">The <paramref name="instance"/> parameter is <see langword="null"/> although the property is not a static
            property or it does not match the property's declaring type.</exception>
            <exception cref="T:System.Reflection.TargetParameterCountException">The number of items in the <paramref name="indexParameters"/> array does not match the number
            of index parameters expected by the property.</exception>
            <exception cref="T:System.Reflection.TargetInvocationException">The property's get method throw an exception, see the <see cref="P:System.Exception.InnerException"/>
            property.</exception>
            <exception cref="T:System.MethodAccessException">The accessor was private or protected and could not be executed.</exception>
        </member>
        <member name="M:Remotion.Reflection.IPropertyInformation.GetGetMethod(System.Boolean)">
            <summary>
            Get the <see cref="T:Remotion.Reflection.IMethodInformation"/> of the get method for the current <see cref="T:System.Reflection.PropertyInfo"/>.
            </summary>
            <param name="nonPublic">Indicates whether a non-public accessor method may also be returned.</param>
            <returns>
            An instance of <see cref="T:Remotion.Reflection.IMethodInformation"/> for the get method.
            </returns>
        </member>
        <member name="M:Remotion.Reflection.IPropertyInformation.GetSetMethod(System.Boolean)">
            <summary>
            Get the <see cref="T:Remotion.Reflection.IMethodInformation"/> of the set method for the current <see cref="T:System.Reflection.PropertyInfo"/>.
            </summary>
            <param name="nonPublic">Indicates whether a non-public accessor method may also be returned.</param>
            <returns>
            An instance of <see cref="T:Remotion.Reflection.IMethodInformation"/> for the set method.
            </returns>
        </member>
        <member name="M:Remotion.Reflection.IPropertyInformation.FindInterfaceImplementation(System.Type)">
            <summary>
            Finds the implementation <see cref="T:Remotion.Reflection.IPropertyInformation"/> corresponding to this <see cref="T:Remotion.Reflection.IPropertyInformation"/> on the given 
            <see cref="T:System.Type"/>. This <see cref="T:Remotion.Reflection.IPropertyInformation"/> object must denote an interface property.
            </summary>
            <param name="implementationType">The type to search for an implementation of this <see cref="T:Remotion.Reflection.IPropertyInformation"/> on.</param>
            <returns>An instance of <see cref="T:Remotion.Reflection.IPropertyInformation"/> describing the property implementing this interface 
            <see cref="T:Remotion.Reflection.IPropertyInformation"/> on <paramref name="implementationType"/>, or <see langword="null"/> if the 
            <paramref name="implementationType"/> does not implement the interface.</returns>
            <exception cref="T:System.ArgumentException"><paramref name="implementationType"/> is itself an interface.</exception>
            <exception cref="T:System.InvalidOperationException">This <see cref="T:Remotion.Reflection.IPropertyInformation"/> does not describe an interface property.</exception>
        </member>
        <member name="M:Remotion.Reflection.IPropertyInformation.FindInterfaceDeclarations">
            <summary>
            Finds the interface declaration for this <see cref="T:Remotion.Reflection.IPropertyInformation"/>, returning <see langword="null"/> if this 
            <see cref="T:Remotion.Reflection.IPropertyInformation"/> is not an implementation of an interface member.
            </summary>
            <returns>An <see cref="T:Remotion.Reflection.IPropertyInformation"/> for the interface member this <see cref="T:Remotion.Reflection.IPropertyInformation"/> implements, or 
            <see langword="null"/> if this <see cref="T:Remotion.Reflection.IPropertyInformation"/> is not an implementation of an interface member.</returns>
            <exception cref="T:System.InvalidOperationException">This <see cref="T:Remotion.Reflection.IPropertyInformation"/> is itself an interface member, so it cannot have an 
            interface declaration.</exception>
        </member>
        <member name="P:Remotion.Reflection.IPropertyInformation.PropertyType">
            <summary>
            Gets the type of the property, i.e. the type of values the property can store.
            </summary>
            <value>The type of the property.</value>
        </member>
        <member name="P:Remotion.Reflection.IPropertyInformation.CanBeSetFromOutside">
            <summary>
            Determines whether the property can be set from the outside.
            </summary>
            <value>True if this instance has can be set from the outside; otherwise, false.</value>
        </member>
        <member name="T:Remotion.Reflection.ITypeInformation">
            <summary>
            Provides information about a type.
            </summary>
        </member>
        <member name="M:Remotion.Reflection.ITypeInformation.GetArrayRank">
            <summary>
            Gets the number of dimensions in an <see cref="T:System.Array"/>.
            </summary>
            <returns>
            An <see cref="T:System.Int32"/> containing the number of dimensions in the current Type.
            </returns>
            <exception cref="T:System.NotSupportedException">The functionality of this method is unsupported in the base class and must be implemented in a derived class instead.</exception>
            <exception cref="T:System.ArgumentException">The current Type is not an array.</exception>
        </member>
        <member name="M:Remotion.Reflection.ITypeInformation.MakeArrayType(System.Int32)">
            <summary>
            Returns a type object representing an array of the current type, with the specified number of dimensions.
            </summary>
            <returns>
            A type object representing an array of the current type, with the specified number of dimensions.
            </returns>
            <param name="rank">The number of dimensions for the array.</param>
            <exception cref="T:System.IndexOutOfRangeException"><paramref name="rank"/> is invalid. For example, 0 or negative.</exception>
            <exception cref="T:System.NotSupportedException">The invoked method is not supported in the base class.</exception>
        </member>
        <member name="M:Remotion.Reflection.ITypeInformation.MakeArrayType">
            <summary>
            Returns a type object representing a one-dimensional array of the current type, with a lower bound of zero.
            </summary>
            <returns>
            A <see cref="T:Remotion.Reflection.ITypeInformation"/> object representing a one-dimensional array of the current type, with a lower bound of zero.
            </returns>
        </member>
        <member name="M:Remotion.Reflection.ITypeInformation.GetUnderlyingTypeOfEnum">
            <summary>
            Returns a type object that represents the underlying type for the enumeration.
            </summary>
            <returns>
            A <see cref="T:Remotion.Reflection.ITypeInformation"/> object representing the underlying type for the enumeration.
            </returns>
            <exception cref="T:System.InvalidOperationException">The current type is not an enumeration. That is, <see cref="P:Remotion.Reflection.ITypeInformation.IsEnum"/> returns <see langword="false"/>.</exception>
        </member>
        <member name="M:Remotion.Reflection.ITypeInformation.GetUnderlyingTypeOfNullableValueType">
            <summary>
            Returns a <see cref="T:Remotion.Reflection.ITypeInformation"/> object that represents the underlying type argument for the <see cref="T:System.Nullable`1"/>.
            <note type="caution">This method throws if <see cref="P:Remotion.Reflection.ITypeInformation.IsNullableValueType"/> returns <see langword="false"/>, 
            which differs from the behavior <see cref="M:System.Nullable.GetUnderlyingType(System.Type)"/>, which would return <see langword="null"/>.</note>
            </summary>
            <returns>
            A <see cref="T:Remotion.Reflection.ITypeInformation"/> object representing the underlying type argument for the <see cref="T:System.Nullable`1"/>.
            </returns>
            <exception cref="T:System.InvalidOperationException">The current type is not an instantiation of <see cref="T:System.Nullable`1"/>. That is, <see cref="P:Remotion.Reflection.ITypeInformation.IsNullableValueType"/> returns <see langword="false"/>.</exception>
        </member>
        <member name="M:Remotion.Reflection.ITypeInformation.MakePointerType">
            <summary>
            Returns a type object that represents a pointer to the current type.
            </summary>
            <returns>
            A <see cref="T:Remotion.Reflection.ITypeInformation"/> object that represents a pointer to the current type.
            </returns>
            <exception cref="T:System.NotSupportedException">The invoked method is not supported in the base class.</exception>
        </member>
        <member name="M:Remotion.Reflection.ITypeInformation.MakeByRefType">
            <summary>
            Returns a <see cref="T:Remotion.Reflection.ITypeInformation"/> object that represents the current type when passed as a ref parameter.
            </summary>
            <returns>
            A <see cref="T:Remotion.Reflection.ITypeInformation"/> object that represents the current type when passed as a ref parameter.
            </returns>
            <exception cref="T:System.NotSupportedException">The invoked method is not supported in the base class.</exception>
        </member>
        <member name="M:Remotion.Reflection.ITypeInformation.GetElementType">
            <summary>
            When overridden in a derived class, returns the <see cref="T:Remotion.Reflection.ITypeInformation"/> of the object encompassed or referred to by the current array, pointer or reference type.
            </summary>
            <returns>
            The <see cref="T:Remotion.Reflection.ITypeInformation"/> of the object encompassed or referred to by the current array, pointer, or reference type, 
            or <see langword="null"/> if the current type is not an array or a pointer, or is not passed by reference, 
            or represents a generic type or a type parameter in the definition of a generic type or generic method.
            </returns>
        </member>
        <member name="M:Remotion.Reflection.ITypeInformation.GetGenericTypeDefinition">
            <summary>
            Returns a <see cref="T:Remotion.Reflection.ITypeInformation"/> object that represents a generic type definition from which the current generic type can be constructed.
            </summary>
            <returns>
            A <see cref="T:Remotion.Reflection.ITypeInformation"/> object representing a generic type from which the current type can be constructed.
            </returns>
            <exception cref="T:System.InvalidOperationException">The current type is not a generic type. That is, <see cref="P:Remotion.Reflection.ITypeInformation.IsGenericType"/> returns <see langword="false"/>.</exception>
            <exception cref="T:System.NotSupportedException">The invoked method is not supported in the base class. Derived classes must provide an implementation.</exception>
        </member>
        <member name="M:Remotion.Reflection.ITypeInformation.GetGenericArguments">
            <summary>
            Returns an array of <see cref="T:Remotion.Reflection.ITypeInformation"/> objects that represent the type arguments of a generic type or the type parameters of a generic type definition.
            </summary>
            <returns>
            An array of <see cref="T:Remotion.Reflection.ITypeInformation"/> objects that represent the type arguments of a generic type. Returns an empty array if the current type is not a generic type.
            </returns>
        </member>
        <member name="M:Remotion.Reflection.ITypeInformation.GetGenericParameterConstraints">
            <summary>
            Returns an array of <see cref="T:Remotion.Reflection.ITypeInformation"/> objects that represent the constraints on the current generic type parameter. 
            </summary>
            <returns>
            An array of <see cref="T:Remotion.Reflection.ITypeInformation"/> objects that represent the constraints on the current generic type parameter.
            </returns>
            <exception cref="T:System.InvalidOperationException">The current type object is not a generic type parameter. That is, the <see cref="P:Remotion.Reflection.ITypeInformation.IsGenericParameter"/> property returns <see langword="false"/>.</exception>
        </member>
        <member name="M:Remotion.Reflection.ITypeInformation.IsInstanceOfType(System.Object)">
            <summary>
            Determines whether the specified object <paramref name="o"/> is an instance of the current type.
            </summary>
            <returns>
            <see langword="true"/> if the current Type is in the inheritance hierarchy of the object represented by <paramref name="o"/>, 
            or if the current Type is an interface that <paramref name="o"/> supports. <see langword="false"/> if neither of these conditions is the case, 
            or if <paramref name="o"/> is <see langword="null"/>, or if the current Type is an open generic type 
            (that is, <see cref="P:Remotion.Reflection.ITypeInformation.ContainsGenericParameters"/> returns <see langword="true"/>).
            </returns>
            <param name="o">The object to compare with the current <see cref="T:Remotion.Reflection.ITypeInformation"/>. </param>
        </member>
        <member name="M:Remotion.Reflection.ITypeInformation.IsSubclassOf(Remotion.Reflection.ITypeInformation)">
            <summary>
            Determines whether the class represented by the current type derives from the class represented by <paramref name="c"/>.
            </summary>
            <returns>
            <see langword="true"/> if the Type represented by the <paramref name="c"/> parameter and the current type represent classes, 
            and the class represented by the current Type derives from the class represented by <paramref name="c"/>; otherwise, <see langword="false"/>. 
            This method also returns <see langword="false"/> if <paramref name="c"/> and the current type represent the same class.
            In addition, the implementation of <paramref name="c"/> must match the implementation of this <see cref="T:Remotion.Reflection.ITypeInformation"/>,
            otherwise this method will also return <see langword="false"/>.
            </returns>
            <param name="c">The <see cref="T:Remotion.Reflection.ITypeInformation"/> to compare with the current <see cref="T:Remotion.Reflection.ITypeInformation"/>. </param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="c"/> parameter is <see langword="null"/>. </exception>
        </member>
        <member name="M:Remotion.Reflection.ITypeInformation.IsAssignableFrom(Remotion.Reflection.ITypeInformation)">
            <summary>
            Determines whether an instance of the current type can be assigned from an instance of the type represented by <paramref name="c"/>.
            </summary>
            <returns>
            <see langword="true"/> if <paramref name="c"/> and the current Type represent the same type, 
            or if the current Type is in the inheritance hierarchy of <paramref name="c"/>, 
            or if the current Type is an interface that <paramref name="c"/> implements, 
            or if <paramref name="c"/> is a generic type parameter and the current Type represents one of the constraints of <paramref name="c"/>. 
            <see langword="false"/> if none of these conditions are <see langword="true"/>, or if <paramref name="c"/> is <see langword="null"/>,
            or the implementation of <paramref name="c"/> does not match the implementation of this <see cref="T:Remotion.Reflection.ITypeInformation"/>.
            </returns>
            <param name="c">The <see cref="T:Remotion.Reflection.ITypeInformation"/> to compare with the current <see cref="T:Remotion.Reflection.ITypeInformation"/>. </param>
        </member>
        <member name="M:Remotion.Reflection.ITypeInformation.CanAscribeTo(Remotion.Reflection.ITypeInformation)">
            <summary>
            Determines whether the instance of the current type can be ascribed to the instance of the type represented by <paramref name="c"/>.
            </summary>
            <returns>
            <see langword="true"/> if the type represented by the <paramref name="c"/> parameter and the current type represent the same type,
            or if <paramref name="c"/> is in the inheritance hierarchy of the current type, 
            or the current type is a closed version of the generic type represented by <paramref name="c"/>; otherwise, <see langword="false"/>. 
            This method also returns <see langword="false"/> if the implementation of <paramref name="c"/> 
            does not match the implementation of this <see cref="T:Remotion.Reflection.ITypeInformation"/>.
            </returns>
            <param name="c">The <see cref="T:Remotion.Reflection.ITypeInformation"/> to compare with the current <see cref="T:Remotion.Reflection.ITypeInformation"/>. </param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="c"/> parameter is <see langword="null"/>. </exception>
        </member>
        <member name="M:Remotion.Reflection.ITypeInformation.GetAscribedGenericArgumentsFor(Remotion.Reflection.ITypeInformation)">
            <summary>
            Returns the ascribed type arguments for the type represented by <paramref name="c"/> as inherited or implemented by the current type.
            </summary>
            <returns>An array of <see cref="T:Remotion.Reflection.ITypeInformation"/> objects containing the generic arguments of the type 
            represented by <paramref name="c"/> as it is inherited or implemented by the current type.
            </returns>
            <param name="c">The <see cref="T:Remotion.Reflection.ITypeInformation"/> to retrieve the ascribed generic arguments for Must not be <see langword="null"/>.</param>
            <exception cref="T:Remotion.Utilities.ArgumentTypeException">
            Thrown if the type represented by <paramref name="c"/> is not equal to the current type, 
            or if <paramref name="c"/> is in the inheritance hierarchy of the current type,
            or if the implementation of <paramref name="c"/> does not match the implementation of the current <see cref="T:Remotion.Reflection.ITypeInformation"/> object.
            </exception>
            <exception cref="T:System.Reflection.AmbiguousMatchException">
            Thrown if the current type is an interface and implements the interface represented by <paramref name="c"/> or its instantiations
            more than once.
            </exception>
        </member>
        <member name="P:Remotion.Reflection.ITypeInformation.FullName">
            <summary>
            Gets the fully qualified name of the type, including the namespace of the type but not the assembly.
            </summary>
            <returns>
            The fully qualified name of the type, including the namespace of the type but not the assembly; 
            or <see langword="null"/> if the current instance represents a generic type parameter, an array type, pointer type, 
            or byref type based on a type parameter, or a generic type that is not a generic type definition but contains unresolved type parameters.
            </returns>
        </member>
        <member name="P:Remotion.Reflection.ITypeInformation.Namespace">
            <summary>
            Gets the namespace of the type.
            </summary>
            <returns>
            The namespace of the type, or <see langword="null"/> if the current instance represents a generic parameter.
            </returns>
        </member>
        <member name="P:Remotion.Reflection.ITypeInformation.AssemblyQualifiedName">
            <summary>
            Gets the assembly-qualified name of the type, which includes the name of the assembly from which the type was loaded.
            </summary>
            <returns>
            The assembly-qualified name of the type, which includes the name of the assembly from which the type was loaded, or <see langword="null"/> if the current instance represents a generic type parameter.
            </returns>
        </member>
        <member name="P:Remotion.Reflection.ITypeInformation.Assembly">
            <summary>
            Gets the <see cref="T:System.Reflection.Assembly"/> in which the type is declared. For generic types, gets the <see cref="T:System.Reflection.Assembly"/> in which the generic type is defined.
            </summary>
            <returns>
            An <see cref="T:System.Reflection.Assembly"/> instance that describes the assembly containing the current type. For generic types, the instance describes the assembly that contains the generic type definition, not the assembly that creates and uses a particular constructed type.
            </returns>
        </member>
        <member name="P:Remotion.Reflection.ITypeInformation.DeclaringType">
            <summary>
            Gets the type that declares the current nested type or generic type parameter.
            </summary>
            <returns>
            A <see cref="T:Remotion.Reflection.ITypeInformation"/> object representing the enclosing type, if the current type is a nested type; or the generic type definition, 
            if the current type is a type parameter of a generic type; or the type that declares the generic method, 
            if the current type is a type parameter of a generic method; otherwise, <see langword="null"/>.
            </returns>
        </member>
        <member name="P:Remotion.Reflection.ITypeInformation.IsClass">
            <summary>
            Gets a value indicating whether the type is a class; that is, not a value type or interface.
            </summary>
            <returns>
            <see langword="true"/> if the type is a class; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="P:Remotion.Reflection.ITypeInformation.IsValueType">
            <summary>
            Gets a value indicating whether the type is a value type.
            </summary>
            <returns>
            <see langword="true"/> if the type is a value type; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="P:Remotion.Reflection.ITypeInformation.IsInterface">
            <summary>
            Gets a value indicating whether the type is an interface; that is, not a class or a value type.
            </summary>
            <returns>
            <see langword="true"/> if the type is an interface; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="P:Remotion.Reflection.ITypeInformation.IsArray">
            <summary>
            Gets a value indicating whether the type is an array.
            </summary>
            <returns>
            <see langword="true"/> if the type is an array; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="P:Remotion.Reflection.ITypeInformation.IsEnum">
            <summary>
            Gets a value indicating whether the current type represents an enumeration.
            </summary>
            <returns>
            <see langword="true"/> if the current type represents an enumeration; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="P:Remotion.Reflection.ITypeInformation.IsNullableValueType">
            <summary>
            Gets a value indicating whether the current type represents a nullable value type.
            </summary>
            <returns>
            <see langword="true"/> if the current type represents a nullable value type; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="P:Remotion.Reflection.ITypeInformation.IsPointer">
            <summary>
            Gets a value indicating whether the type is a pointer.
            </summary>
            <returns>
            <see langword="true"/> if the type is a pointer; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="P:Remotion.Reflection.ITypeInformation.IsByRef">
            <summary>
            Gets a value indicating whether the type is passed by reference.
            </summary>
            <returns>
            <see langword="true"/> if the type is passed by reference; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="P:Remotion.Reflection.ITypeInformation.IsSealed">
            <summary>
            Gets a value indicating whether the type is declared sealed.
            </summary>
            <returns>
            <see langword="true"/> if the type is declared sealed; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="P:Remotion.Reflection.ITypeInformation.IsAbstract">
            <summary>
            Gets a value indicating whether the type is abstract and must be overridden.
            </summary>
            <returns>
            <see langword="true"/> if the type is abstract; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="P:Remotion.Reflection.ITypeInformation.IsNested">
            <summary>
            Gets a value indicating whether the current type object represents a type whose definition is nested inside the definition of another type.
            </summary>
            <returns>
            <see langword="true"/> if the type is nested inside another type; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="P:Remotion.Reflection.ITypeInformation.IsSerializable">
            <summary>
            Gets a value indicating whether the type is serializable.
            </summary>
            <returns>
            <see langword="true"/> if the type is serializable; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="P:Remotion.Reflection.ITypeInformation.HasElementType">
            <summary>
            Gets a value indicating whether the current type encompasses or refers to another type; 
            that is, whether the current type is an array, a pointer, or is passed by reference.
            </summary>
            <returns>
            <see langword="true"/> if the type is an array, a pointer, or is passed by reference; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="P:Remotion.Reflection.ITypeInformation.IsGenericType">
            <summary>
            Gets a value indicating whether the current type is a generic type.
            </summary>
            <returns>
            <see langword="true"/> if the current type is a generic type; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="P:Remotion.Reflection.ITypeInformation.IsGenericTypeDefinition">
            <summary>
            Gets a value indicating whether the current type represents a generic type definition, from which other generic types can be constructed.
            </summary>
            <returns>
            <see langword="true"/> if the type object represents a generic type definition; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="P:Remotion.Reflection.ITypeInformation.ContainsGenericParameters">
            <summary>
            Gets a value indicating whether the current type object has type parameters that have not been replaced by specific types.
            </summary>
            <returns>
            <see langword="true"/> if the type object is itself a generic type parameter or has type parameters for which specific types have not been supplied; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="P:Remotion.Reflection.ITypeInformation.IsGenericParameter">
            <summary>
            Gets a value indicating whether the current type represents a type parameter in the definition of a generic type or method.
            </summary>
            <returns>
            <see langword="true"/> if the type object represents a type parameter of a generic type definition or generic method definition; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="P:Remotion.Reflection.ITypeInformation.GenericParameterPosition">
            <summary>
            Gets the position of the type parameter in the type parameter list of the generic type or method that declared the parameter, 
            when the type object represents a type parameter of a generic type or a generic method.
            </summary>
            <returns>
            The position of a type parameter in the type parameter list of the generic type or method that defines the parameter. Position numbers begin at 0.
            </returns>
            <exception cref="T:System.InvalidOperationException">The current type does not represent a type parameter. That is, <see cref="P:Remotion.Reflection.ITypeInformation.IsGenericParameter"/> returns <see langword="false"/>.</exception>
        </member>
        <member name="P:Remotion.Reflection.ITypeInformation.GenericParameterAttributes">
            <summary>
            Gets a combination of <see cref="P:Remotion.Reflection.ITypeInformation.GenericParameterAttributes"/> flags that describe the covariance and special constraints of the current generic type parameter. 
            </summary>
            <returns>
            A bitwise combination of <see cref="P:Remotion.Reflection.ITypeInformation.GenericParameterAttributes"/> values that describes the covariance and special constraints of the current generic type parameter.
            </returns>
            <exception cref="T:System.InvalidOperationException">The current type object is not a generic type parameter. That is, the <see cref="P:Remotion.Reflection.ITypeInformation.IsGenericParameter"/> property returns <see langword="false"/>.</exception>
            <exception cref="T:System.NotSupportedException">The invoked method is not supported in the base class.</exception>
        </member>
        <member name="P:Remotion.Reflection.ITypeInformation.BaseType">
            <summary>
            Gets the <see cref="T:Remotion.Reflection.ITypeInformation"/> object from which the current type directly inherits.
            </summary>
            <returns>
            The <see cref="T:Remotion.Reflection.ITypeInformation"/> from which the current type directly inherits, 
            or null if the current Type represents the <see cref="T:System.Object"/> class or an interface.
            </returns>
        </member>
        <member name="T:Remotion.Reflection.MethodInfoAdapterConverter">
            <summary>
            Provides support for converting instances of type <see cref="T:Remotion.Reflection.MethodInfoAdapter"/> to and from instances of type <see cref="T:System.Reflection.MethodInfo"/>.
            </summary>
        </member>
        <member name="M:Remotion.Reflection.MethodInfoAdapterConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert an object of the given type to a <see cref="T:Remotion.Reflection.MethodInfoAdapter"/>, using the specified context. 
            This method returns <see langword="true"/> if <paramref name="sourceType"/> is <see cref="T:System.Reflection.MethodInfo"/>; <see langword="false"/> otherwise.
            </summary>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. Ignored by this 
            implementation.</param>
            <param name="sourceType">A <see cref="T:System.Type"/> that represents the type you want to convert from.</param>
            <returns>
            <see langword="true"/> if this converter can perform the conversion; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:Remotion.Reflection.MethodInfoAdapterConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert a <see cref="T:Remotion.Reflection.MethodInfoAdapter"/> to an object of the given type, using the specified context. This
            method returns <see langword="true"/> if <paramref name="destinationType"/> is <see cref="T:System.Reflection.MethodInfo"/>; <see langword="false"/> otherwise.
            </summary>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. Ignored by this 
            implementation.</param>
            <param name="destinationType">A <see cref="T:System.Type"/> that represents the type you want to convert to.</param>
            <returns>
            <see langword="true"/> if this converter can perform the conversion; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:Remotion.Reflection.MethodInfoAdapterConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
            <summary>
            Converts the given object to a <see cref="T:Remotion.Reflection.MethodInfoAdapter"/>, using the specified context and culture information.
            </summary>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. Ignored by this
            implementation</param>
            <param name="culture">The <see cref="T:System.Globalization.CultureInfo"/> to use as the current culture. Ignored by this implementation</param>
            <param name="value">The <see cref="T:System.Object"/> to convert. Must be a <see cref="T:System.Reflection.MethodInfo"/> value.</param>
            <returns>
            An <see cref="T:System.Object"/> that represents the converted value.
            </returns>
            <exception cref="T:System.NotSupportedException">
            The conversion cannot be performed.
            </exception>
        </member>
        <member name="M:Remotion.Reflection.MethodInfoAdapterConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
            <summary>
            Converts the given value object to a <see cref="T:System.Reflection.MethodInfo"/>, using the specified context and culture information.
            </summary>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. Ignored
            by this implementation.</param>
            <param name="culture">A <see cref="T:System.Globalization.CultureInfo"/>. If null is passed, the current culture is assumed. Ignored
            by this implementation.</param>
            <param name="value">The <see cref="T:System.Object"/> to convert. Must be an instance of <see cref="T:Remotion.Reflection.MethodInfoAdapter"/>.</param>
            <param name="destinationType">The <see cref="T:System.Type"/> to convert the <paramref name="value"/> parameter to. Must be
            <see cref="T:System.Reflection.MethodInfo"/>.</param>
            <returns>
            An <see cref="T:System.Object"/> that represents the converted value.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="destinationType"/> parameter is null.
            </exception>
            <exception cref="T:System.NotSupportedException">
            The conversion cannot be performed.
            </exception>
        </member>
        <member name="T:Remotion.Reflection.ParamList">
            <summary>
            Represents a strongly typed list of parameters to be passed to a function or action delegate.
            </summary>
        </member>
        <member name="M:Remotion.Reflection.ParamList.Create``2(``0,``1)">
            <summary>
            Creates a strongly typed list of parameters to be passed to a function or action.
            </summary>
            <returns>A <see cref="T:Remotion.Reflection.ParamList"/> encapsulating the passed parameters.</returns>
        </member>
        <member name="M:Remotion.Reflection.ParamList.Create``3(``0,``1,``2)">
            <summary>
            Creates a strongly typed list of parameters to be passed to a function or action.
            </summary>
            <returns>A <see cref="T:Remotion.Reflection.ParamList"/> encapsulating the passed parameters.</returns>
        </member>
        <member name="M:Remotion.Reflection.ParamList.Create``4(``0,``1,``2,``3)">
            <summary>
            Creates a strongly typed list of parameters to be passed to a function or action.
            </summary>
            <returns>A <see cref="T:Remotion.Reflection.ParamList"/> encapsulating the passed parameters.</returns>
        </member>
        <member name="M:Remotion.Reflection.ParamList.Create``5(``0,``1,``2,``3,``4)">
            <summary>
            Creates a strongly typed list of parameters to be passed to a function or action.
            </summary>
            <returns>A <see cref="T:Remotion.Reflection.ParamList"/> encapsulating the passed parameters.</returns>
        </member>
        <member name="M:Remotion.Reflection.ParamList.Create``6(``0,``1,``2,``3,``4,``5)">
            <summary>
            Creates a strongly typed list of parameters to be passed to a function or action.
            </summary>
            <returns>A <see cref="T:Remotion.Reflection.ParamList"/> encapsulating the passed parameters.</returns>
        </member>
        <member name="M:Remotion.Reflection.ParamList.Create``7(``0,``1,``2,``3,``4,``5,``6)">
            <summary>
            Creates a strongly typed list of parameters to be passed to a function or action.
            </summary>
            <returns>A <see cref="T:Remotion.Reflection.ParamList"/> encapsulating the passed parameters.</returns>
        </member>
        <member name="M:Remotion.Reflection.ParamList.Create``8(``0,``1,``2,``3,``4,``5,``6,``7)">
            <summary>
            Creates a strongly typed list of parameters to be passed to a function or action.
            </summary>
            <returns>A <see cref="T:Remotion.Reflection.ParamList"/> encapsulating the passed parameters.</returns>
        </member>
        <member name="M:Remotion.Reflection.ParamList.Create``9(``0,``1,``2,``3,``4,``5,``6,``7,``8)">
            <summary>
            Creates a strongly typed list of parameters to be passed to a function or action.
            </summary>
            <returns>A <see cref="T:Remotion.Reflection.ParamList"/> encapsulating the passed parameters.</returns>
        </member>
        <member name="M:Remotion.Reflection.ParamList.Create``10(``0,``1,``2,``3,``4,``5,``6,``7,``8,``9)">
            <summary>
            Creates a strongly typed list of parameters to be passed to a function or action.
            </summary>
            <returns>A <see cref="T:Remotion.Reflection.ParamList"/> encapsulating the passed parameters.</returns>
        </member>
        <member name="M:Remotion.Reflection.ParamList.Create``11(``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,``10)">
            <summary>
            Creates a strongly typed list of parameters to be passed to a function or action.
            </summary>
            <returns>A <see cref="T:Remotion.Reflection.ParamList"/> encapsulating the passed parameters.</returns>
        </member>
        <member name="M:Remotion.Reflection.ParamList.Create``12(``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,``10,``11)">
            <summary>
            Creates a strongly typed list of parameters to be passed to a function or action.
            </summary>
            <returns>A <see cref="T:Remotion.Reflection.ParamList"/> encapsulating the passed parameters.</returns>
        </member>
        <member name="M:Remotion.Reflection.ParamList.Create``13(``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,``10,``11,``12)">
            <summary>
            Creates a strongly typed list of parameters to be passed to a function or action.
            </summary>
            <returns>A <see cref="T:Remotion.Reflection.ParamList"/> encapsulating the passed parameters.</returns>
        </member>
        <member name="M:Remotion.Reflection.ParamList.Create``14(``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,``10,``11,``12,``13)">
            <summary>
            Creates a strongly typed list of parameters to be passed to a function or action.
            </summary>
            <returns>A <see cref="T:Remotion.Reflection.ParamList"/> encapsulating the passed parameters.</returns>
        </member>
        <member name="M:Remotion.Reflection.ParamList.Create``15(``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,``10,``11,``12,``13,``14)">
            <summary>
            Creates a strongly typed list of parameters to be passed to a function or action.
            </summary>
            <returns>A <see cref="T:Remotion.Reflection.ParamList"/> encapsulating the passed parameters.</returns>
        </member>
        <member name="M:Remotion.Reflection.ParamList.Create``16(``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,``10,``11,``12,``13,``14,``15)">
            <summary>
            Creates a strongly typed list of parameters to be passed to a function or action.
            </summary>
            <returns>A <see cref="T:Remotion.Reflection.ParamList"/> encapsulating the passed parameters.</returns>
        </member>
        <member name="M:Remotion.Reflection.ParamList.Create``17(``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,``10,``11,``12,``13,``14,``15,``16)">
            <summary>
            Creates a strongly typed list of parameters to be passed to a function or action.
            </summary>
            <returns>A <see cref="T:Remotion.Reflection.ParamList"/> encapsulating the passed parameters.</returns>
        </member>
        <member name="M:Remotion.Reflection.ParamList.Create``18(``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,``10,``11,``12,``13,``14,``15,``16,``17)">
            <summary>
            Creates a strongly typed list of parameters to be passed to a function or action.
            </summary>
            <returns>A <see cref="T:Remotion.Reflection.ParamList"/> encapsulating the passed parameters.</returns>
        </member>
        <member name="M:Remotion.Reflection.ParamList.Create``19(``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,``10,``11,``12,``13,``14,``15,``16,``17,``18)">
            <summary>
            Creates a strongly typed list of parameters to be passed to a function or action.
            </summary>
            <returns>A <see cref="T:Remotion.Reflection.ParamList"/> encapsulating the passed parameters.</returns>
        </member>
        <member name="M:Remotion.Reflection.ParamList.Create``20(``0,``1,``2,``3,``4,``5,``6,``7,``8,``9,``10,``11,``12,``13,``14,``15,``16,``17,``18,``19)">
            <summary>
            Creates a strongly typed list of parameters to be passed to a function or action.
            </summary>
            <returns>A <see cref="T:Remotion.Reflection.ParamList"/> encapsulating the passed parameters.</returns>
        </member>
        <member name="M:Remotion.Reflection.ParamList.Create``1(``0)">
            <summary>
            Creates a strongly typed list of parameters to be passed to a function or action.
            </summary>
            <returns>A <see cref="T:Remotion.Reflection.ParamList"/> encapsulating the passed parameters.</returns>
        </member>
        <member name="M:Remotion.Reflection.ParamList.Create">
            <summary>
            Returns an empty parameter list to be passed to a function or action.
            </summary>
            <returns>An empty <see cref="T:Remotion.Reflection.ParamList"/>. This is the same value returned by <see cref="P:Remotion.Reflection.ParamList.Empty"/>.</returns>
        </member>
        <member name="M:Remotion.Reflection.ParamList.CreateDynamic(System.Type[],System.Object[])">
            <summary>
            Creates a strongly typed list of parameters to be passed to a function or action.
            </summary>
            <returns>A <see cref="T:Remotion.Reflection.ParamList"/> encapsulating the passed parameters.</returns>
        </member>
        <member name="M:Remotion.Reflection.ParamList.CreateDynamic(System.Object[])">
            <summary>
            Creates a list of parameters to be passed to a function or action. This overload takes a <c>params</c> array, which is convenient, but might
            lead to subtle bugs, especially when <see langword="null"/> values are supplied.
            </summary>
            <returns>A <see cref="T:Remotion.Reflection.ParamList"/> encapsulating the passed parameters.</returns>
        </member>
        <member name="M:Remotion.Reflection.ParamList.InvokeAction(System.Delegate)">
            <summary>
            Executes the given action delegate, passing in the parameters encapsulated by this <see cref="T:Remotion.Reflection.ParamList"/>.
            </summary>
            <param name="action">The action to be executed. This delegate must match <see cref="P:Remotion.Reflection.ParamList.ActionType"/>. If <see cref="P:Remotion.Reflection.ParamList.ActionType"/> is null,
            it must match the types returned by <see cref="M:Remotion.Reflection.ParamList.GetParameterTypes"/>.</param>
        </member>
        <member name="M:Remotion.Reflection.ParamList.InvokeFunc(System.Delegate)">
            <summary>
            Executes the given function delegate, passing in the parameters encapsulated by this <see cref="T:Remotion.Reflection.ParamList"/>.
            </summary>
            <param name="func">The function to be executed. This delegate must match <see cref="P:Remotion.Reflection.ParamList.FuncType"/>. If <see cref="P:Remotion.Reflection.ParamList.FuncType"/> is null,
            it must match the types returned by <see cref="M:Remotion.Reflection.ParamList.GetParameterTypes"/>, plus <see cref="T:System.Object"/> as the return type.</param>
            <returns>The result of the delegate execution.</returns>
        </member>
        <member name="M:Remotion.Reflection.ParamList.InvokeConstructor(Remotion.Reflection.IConstructorLookupInfo)">
            <summary>
            Executes a constructor, passing in the parameters encapsulated by this <see cref="T:Remotion.Reflection.ParamList"/>.
            </summary>
            <param name="constructorLookupInfo">An object looking up the constructor to be invoked. The lookup is performed with the signature defined 
            by the parameters encapsulated by this <see cref="T:Remotion.Reflection.ParamList"/>.</param>
            <returns>The result of the constructor invocation.</returns>
        </member>
        <member name="M:Remotion.Reflection.ParamList.GetParameterTypes">
            <summary>
            Gets the parameter types of the parameters encapsulated by this <see cref="T:Remotion.Reflection.ParamList"/>.
            </summary>
            <returns>The parameter types.</returns>
        </member>
        <member name="M:Remotion.Reflection.ParamList.GetParameterValues">
            <summary>
            Gets the parameter values of the parameters encapsulated by this <see cref="T:Remotion.Reflection.ParamList"/>.
            </summary>
            <returns>The parameter values.</returns>
        </member>
        <member name="P:Remotion.Reflection.ParamList.Empty">
            <summary>
            Represents an empty parameter list. This is equivalent to calling the <see cref="M:Remotion.Reflection.ParamList.Create"/> overload without parameters.
            </summary>
        </member>
        <member name="P:Remotion.Reflection.ParamList.FuncType">
            <summary>
            Gets the type of <see cref="T:System.Func`1"/> delegates supported by this <see cref="T:Remotion.Reflection.ParamList"/> instance.
            </summary>
            <value>The function delegate type supported by this <see cref="T:Remotion.Reflection.ParamList"/> instance.</value>
        </member>
        <member name="P:Remotion.Reflection.ParamList.ActionType">
            <summary>
            Gets the type of <see cref="T:System.Action"/> delegates supported by this <see cref="T:Remotion.Reflection.ParamList"/> instance.
            </summary>
            <value>The action delegate type supported by this <see cref="T:Remotion.Reflection.ParamList"/> instance.</value>
        </member>
        <member name="T:Remotion.Reflection.PropertyInfoAdapterConverter">
            <summary>
            Provides support for converting instances of type <see cref="T:Remotion.Reflection.PropertyInfoAdapter"/> to and from instances of type <see cref="T:System.Reflection.PropertyInfo"/>.
            </summary>
        </member>
        <member name="M:Remotion.Reflection.PropertyInfoAdapterConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert an object of the given type to a <see cref="T:Remotion.Reflection.PropertyInfoAdapter"/>, using the specified context. 
            This method returns <see langword="true"/> if <paramref name="sourceType"/> is <see cref="T:System.Reflection.PropertyInfo"/>; <see langword="false"/> otherwise.
            </summary>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. Ignored by this 
            implementation.</param>
            <param name="sourceType">A <see cref="T:System.Type"/> that represents the type you want to convert from.</param>
            <returns>
            <see langword="true"/> if this converter can perform the conversion; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:Remotion.Reflection.PropertyInfoAdapterConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert a <see cref="T:Remotion.Reflection.PropertyInfoAdapter"/> to an object of the given type, using the specified context. This
            method returns <see langword="true"/> if <paramref name="destinationType"/> is <see cref="T:System.Reflection.PropertyInfo"/>; <see langword="false"/> otherwise.
            </summary>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. Ignored by this 
            implementation.</param>
            <param name="destinationType">A <see cref="T:System.Type"/> that represents the type you want to convert to.</param>
            <returns>
            <see langword="true"/> if this converter can perform the conversion; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:Remotion.Reflection.PropertyInfoAdapterConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
            <summary>
            Converts the given object to a <see cref="T:Remotion.Reflection.PropertyInfoAdapter"/>, using the specified context and culture information.
            </summary>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. Ignored by this
            implementation</param>
            <param name="culture">The <see cref="T:System.Globalization.CultureInfo"/> to use as the current culture. Ignored by this implementation</param>
            <param name="value">The <see cref="T:System.Object"/> to convert. Must be a <see cref="T:System.Reflection.PropertyInfo"/> value.</param>
            <returns>
            An <see cref="T:System.Object"/> that represents the converted value.
            </returns>
            <exception cref="T:System.NotSupportedException">
            The conversion cannot be performed.
            </exception>
        </member>
        <member name="M:Remotion.Reflection.PropertyInfoAdapterConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
            <summary>
            Converts the given value object to a <see cref="T:System.Reflection.PropertyInfo"/>, using the specified context and culture information.
            </summary>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. Ignored
            by this implementation.</param>
            <param name="culture">A <see cref="T:System.Globalization.CultureInfo"/>. If null is passed, the current culture is assumed. Ignored
            by this implementation.</param>
            <param name="value">The <see cref="T:System.Object"/> to convert. Must be an instance of <see cref="T:Remotion.Reflection.PropertyInfoAdapter"/>.</param>
            <param name="destinationType">The <see cref="T:System.Type"/> to convert the <paramref name="value"/> parameter to. Must be
            <see cref="T:System.Reflection.PropertyInfo"/>.</param>
            <returns>
            An <see cref="T:System.Object"/> that represents the converted value.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="destinationType"/> parameter is null.
            </exception>
            <exception cref="T:System.NotSupportedException">
            The conversion cannot be performed.
            </exception>
        </member>
        <member name="T:Remotion.Reflection.ReflectionExtensions">
            <summary>
            Extension methods for <see cref="T:Remotion.Reflection.IMemberInformation"/>.
            </summary>
        </member>
        <member name="M:Remotion.Reflection.ReflectionExtensions.IsOriginalDeclaration(Remotion.Reflection.IMemberInformation)">
            <summary>
            Evaluates whether the <see cref="T:Remotion.Reflection.IMemberInformation"/> instance represents to orignal declaration of the member in the type hierarchy.
            </summary>
            <returns>
              <see langword="true"/> if <see cref="P:Remotion.Reflection.IMemberInformation.DeclaringType"/> and <see cref="M:Remotion.Reflection.IMemberInformation.GetOriginalDeclaringType"/> are equal.
            </returns>
        </member>
        <member name="T:Remotion.Reflection.TypeAdapter">
            <summary>
            Implements the <see cref="T:Remotion.Reflection.ITypeInformation"/> to wrap a <see cref="T:System.Type"/> instance.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.TypeAdapterConverter">
            <summary>
            Provides support for converting instances of type <see cref="T:Remotion.Reflection.TypeAdapter"/> to and from instances of type <see cref="T:System.Type"/>.
            </summary>
        </member>
        <member name="M:Remotion.Reflection.TypeAdapterConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert an object of the given type to a <see cref="T:Remotion.Reflection.TypeAdapter"/>, using the specified context. 
            This method returns <see langword="true"/> if <paramref name="sourceType"/> is <see cref="T:System.Type"/>; <see langword="false"/> otherwise.
            </summary>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. Ignored by this 
            implementation.</param>
            <param name="sourceType">A <see cref="T:System.Type"/> that represents the type you want to convert from.</param>
            <returns>
            <see langword="true"/> if this converter can perform the conversion; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:Remotion.Reflection.TypeAdapterConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert a <see cref="T:Remotion.Reflection.TypeAdapter"/> to an object of the given type, using the specified context. This
            method returns <see langword="true"/> if <paramref name="destinationType"/> is <see cref="T:System.Type"/>; <see langword="false"/> otherwise.
            </summary>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. Ignored by this 
            implementation.</param>
            <param name="destinationType">A <see cref="T:System.Type"/> that represents the type you want to convert to.</param>
            <returns>
            <see langword="true"/> if this converter can perform the conversion; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:Remotion.Reflection.TypeAdapterConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
            <summary>
            Converts the given object to a <see cref="T:Remotion.Reflection.TypeAdapter"/>, using the specified context and culture information.
            </summary>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. Ignored by this
            implementation</param>
            <param name="culture">The <see cref="T:System.Globalization.CultureInfo"/> to use as the current culture. Ignored by this implementation</param>
            <param name="value">The <see cref="T:System.Object"/> to convert. Must be a <see cref="T:System.Type"/> value.</param>
            <returns>
            An <see cref="T:System.Object"/> that represents the converted value.
            </returns>
            <exception cref="T:System.NotSupportedException">
            The conversion cannot be performed.
            </exception>
        </member>
        <member name="M:Remotion.Reflection.TypeAdapterConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
            <summary>
            Converts the given value object to a <see cref="T:System.Type"/>, using the specified context and culture information.
            </summary>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. Ignored
            by this implementation.</param>
            <param name="culture">A <see cref="T:System.Globalization.CultureInfo"/>. If null is passed, the current culture is assumed. Ignored
            by this implementation.</param>
            <param name="value">The <see cref="T:System.Object"/> to convert. Must be an instance of <see cref="T:Remotion.Reflection.TypeAdapter"/>.</param>
            <param name="destinationType">The <see cref="T:System.Type"/> to convert the <paramref name="value"/> parameter to. Must be
            <see cref="T:System.Type"/>.</param>
            <returns>
            An <see cref="T:System.Object"/> that represents the converted value.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="destinationType"/> parameter is null.
            </exception>
            <exception cref="T:System.NotSupportedException">
            The conversion cannot be performed.
            </exception>
        </member>
        <member name="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.CachingAssemblyFinderDecorator">
            <summary>
            Decorates an <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.IAssemblyFinder"/>, caching its results.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.IAssemblyFinder">
            <summary>
            Provides an interface for classes that find assemblies.
            </summary>
        </member>
        <member name="M:Remotion.Reflection.TypeDiscovery.AssemblyFinding.IAssemblyFinder.FindAssemblies">
            <summary>
            Finds assemblies as defined by implementers of this interface.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.TypeDiscovery.ContextAwareTypeDiscoveryUtility">
            <summary>
            Represents the central entry point into re-motion's type discovery mechanism. All components requiring type discovery should use this class and
            its <see cref="M:Remotion.Reflection.TypeDiscovery.ContextAwareTypeDiscoveryUtility.GetTypeDiscoveryService"/> method. All components retriving a type by its name that could be executed in the context of the
            designer should use <see cref="M:Remotion.Reflection.TypeDiscovery.ContextAwareTypeDiscoveryUtility.GetType(System.String,System.Boolean)"/>.
            </summary>
            <threadsafety static="true" instance="false"/>
        </member>
        <member name="M:Remotion.Reflection.TypeDiscovery.ContextAwareTypeDiscoveryUtility.GetTypeDiscoveryService">
            <summary>
            Gets the current context-specific <see cref="T:System.ComponentModel.Design.ITypeDiscoveryService"/>. If <see cref="P:Remotion.Utilities.DesignerUtility.IsDesignMode"/> is set to 
            <see langword="true"/>, the designer's <see cref="T:System.ComponentModel.Design.ITypeDiscoveryService"/> is returned. Otherwise, the 
            <see cref="P:Remotion.Reflection.TypeDiscovery.ContextAwareTypeDiscoveryUtility.DefaultNonDesignModeService"/> is returned. If no custom instance has been set for the <see cref="P:Remotion.Reflection.TypeDiscovery.ContextAwareTypeDiscoveryUtility.DefaultNonDesignModeService"/>
            property, <see cref="T:Remotion.Configuration.TypeDiscovery.TypeDiscoveryConfiguration"/> is used to create a new 
            <see cref="T:System.ComponentModel.Design.ITypeDiscoveryService"/> when the property is first retrieved. That instance is stored for later uses.
            </summary>
            <value>The current context-specific <see cref="T:System.ComponentModel.Design.ITypeDiscoveryService"/>.</value>
        </member>
        <member name="M:Remotion.Reflection.TypeDiscovery.ContextAwareTypeDiscoveryUtility.GetType(System.String,System.Boolean)">
            <summary>
            Gets a type by its name, agnostic of whether the code is executing in the designer or not. If <see cref="P:Remotion.Utilities.DesignerUtility.IsDesignMode"/>
            is set to <see langword="true"/>, the designer services are used to retrieve the type. Otherwise, <see cref="M:System.Type.GetType(System.String,System.Boolean)"/> is 
            used. Use <see cref="T:Remotion.Utilities.TypeUtility"/> in order to get types by an abbreviated type name.
            </summary>
            <param name="typeName">The name of the type to get. This must follow the conventions of <see cref="M:System.Type.GetType(System.String,System.Boolean)"/>.</param>
            <param name="throwOnError">If <see langword="true"/>, a <see cref="T:System.TypeLoadException"/> is thrown if the given type cannot be loaded.
            Otherwise, <see langword="null"/> is returned.</param>
            <returns>The type with the given name, retrieved either from the designer or via <see cref="M:System.Type.GetType(System.String,System.Boolean)"/>.</returns>
        </member>
        <member name="P:Remotion.Reflection.TypeDiscovery.ContextAwareTypeDiscoveryUtility.DefaultNonDesignModeService">
            <summary>
            Gets or sets the default non-design mode <see cref="T:System.ComponentModel.Design.ITypeDiscoveryService"/>. This service is returned whenever 
            <see cref="M:Remotion.Reflection.TypeDiscovery.ContextAwareTypeDiscoveryUtility.GetTypeDiscoveryService"/> is called unless <see cref="P:Remotion.Utilities.DesignerUtility.IsDesignMode"/> is set to <see langword="true"/> (in which
            case the designer's <see cref="T:System.ComponentModel.Design.ITypeDiscoveryService"/> is used instead). If no custom instance has been set for this property, 
            <see cref="T:Remotion.Configuration.TypeDiscovery.TypeDiscoveryConfiguration"/> is used to create a new <see cref="T:System.ComponentModel.Design.ITypeDiscoveryService"/>
            when the property is first retrieved. That instance is stored for later uses.
            </summary>
            <value>The default non design mode <see cref="T:System.ComponentModel.Design.ITypeDiscoveryService"/>.</value>
        </member>
        <member name="T:Remotion.ServiceLocation.SafeServiceLocator">
            <summary>
            <see cref="T:Remotion.ServiceLocation.SafeServiceLocator"/> is intended as a wrapper for <see cref="T:Microsoft.Practices.ServiceLocation.ServiceLocator"/>, specifically the 
            <see cref="P:Microsoft.Practices.ServiceLocation.ServiceLocator.Current"/> property. In contrast to <see cref="T:Microsoft.Practices.ServiceLocation.ServiceLocator"/>, <see cref="T:Remotion.ServiceLocation.SafeServiceLocator"/> will never throw
            a <see cref="T:System.NullReferenceException"/> but instead register an default <see cref="T:Microsoft.Practices.ServiceLocation.IServiceLocator"/> instance if no custom service locator was
            registered.
            </summary>
            <remarks>
            <para>
            Accessing <see cref="T:Microsoft.Practices.ServiceLocation.ServiceLocator"/> will always lead to a <see cref="T:System.NullReferenceException"/> if no service locator is 
            configured. Using <see cref="T:Remotion.ServiceLocation.SafeServiceLocator"/> instead will catch the exception and register a default <see cref="T:Microsoft.Practices.ServiceLocation.IServiceLocator"/> instance.
            A provider for the default instance can be defined in the application configuration file (handled by 
            <see cref="T:Remotion.Configuration.ServiceLocation.ServiceLocationConfiguration"/>). The provider needs to implement <see cref="T:Remotion.ServiceLocation.IServiceLocatorProvider"/> and must have a default 
            constructor.
            <code>
            &lt;?xml version="1.0" encoding="utf-8" ?&gt;
            &lt;configuration&gt;
              &lt;configSections&gt;
                &lt;section name="remotion.serviceLocation" type="Remotion.Configuration.ServiceLocation.ServiceLocationConfiguration,Remotion" /&gt;
              &lt;/configSections&gt;
            
              &lt;remotion.serviceLocation xmlns="http://www.re-motion.org/serviceLocation/configuration"&gt;
                &lt;serviceLocatorProvider type="MyAssembly::MyServiceLocatorProvider"/&gt;
              &lt;/remotion.serviceLocation&gt;
            &lt;/configuration&gt;
            </code>
            </para>
            <para>
            If no provider is configured, a <see cref="T:Remotion.ServiceLocation.DefaultServiceLocator"/> instance is used as the default instance.
            </para>
            </remarks>
        </member>
        <member name="P:Remotion.ServiceLocation.SafeServiceLocator.Current">
            <summary>
            Gets the currently configured <see cref="T:Microsoft.Practices.ServiceLocation.IServiceLocator"/>. 
            If no service locator is configured or <see cref="P:Microsoft.Practices.ServiceLocation.ServiceLocator.Current"/> returns <see langword="null"/>, 
            an <see cref="T:Microsoft.Practices.ServiceLocation.IServiceLocator"/> will be returned.
            </summary>
        </member>
        <member name="T:Remotion.Action`5">
            <summary>
            Provides a standard delegate type for an action without return value
            </summary>
        </member>
        <member name="T:Remotion.Action`6">
            <summary>
            Provides a standard delegate type for an action without return value.
            </summary>
        </member>
        <member name="T:Remotion.Action`7">
            <summary>
            Provides a standard delegate type for an action without return value.
            </summary>
        </member>
        <member name="T:Remotion.Action`8">
            <summary>
            Provides a standard delegate type for an action without return value.
            </summary>
        </member>
        <member name="T:Remotion.Action`9">
            <summary>
            Provides a standard delegate type for an action without return value.
            </summary>
        </member>
        <member name="T:Remotion.Action`10">
            <summary>
            Provides a standard delegate type for an action without return value.
            </summary>
        </member>
        <member name="T:Remotion.Action`11">
            <summary>
            Provides a standard delegate type for an action without return value.
            </summary>
        </member>
        <member name="T:Remotion.Action`12">
            <summary>
            Provides a standard delegate type for an action without return value.
            </summary>
        </member>
        <member name="T:Remotion.Action`13">
            <summary>
            Provides a standard delegate type for an action without return value.
            </summary>
        </member>
        <member name="T:Remotion.Action`14">
            <summary>
            Provides a standard delegate type for an action without return value.
            </summary>
        </member>
        <member name="T:Remotion.Action`15">
            <summary>
            Provides a standard delegate type for an action without return value.
            </summary>
        </member>
        <member name="T:Remotion.Action`16">
            <summary>
            Provides a standard delegate type for an action without return value.
            </summary>
        </member>
        <member name="T:Remotion.Action`17">
            <summary>
            Provides a standard delegate type for an action without return value.
            </summary>
        </member>
        <member name="T:Remotion.Action`18">
            <summary>
            Provides a standard delegate type for an action without return value.
            </summary>
        </member>
        <member name="T:Remotion.Action`19">
            <summary>
            Provides a standard delegate type for an action without return value.
            </summary>
        </member>
        <member name="T:Remotion.Action`20">
            <summary>
            Provides a standard delegate type for an action without return value.
            </summary>
        </member>
        <member name="T:Remotion.Func`6">
            <summary>
            Provides a standard delegate type for a function with a return value.
            </summary>
        </member>
        <member name="T:Remotion.Func`7">
            <summary>
            Provides a standard delegate type for a function with a return value.
            </summary>
        </member>
        <member name="T:Remotion.Func`8">
            <summary>
            Provides a standard delegate type for a function with a return value.
            </summary>
        </member>
        <member name="T:Remotion.Func`9">
            <summary>
            Provides a standard delegate type for a function with a return value.
            </summary>
        </member>
        <member name="T:Remotion.Func`10">
            <summary>
            Provides a standard delegate type for a function with a return value.
            </summary>
        </member>
        <member name="T:Remotion.Func`11">
            <summary>
            Provides a standard delegate type for a function with a return value.
            </summary>
        </member>
        <member name="T:Remotion.Func`12">
            <summary>
            Provides a standard delegate type for a function with a return value.
            </summary>
        </member>
        <member name="T:Remotion.Func`13">
            <summary>
            Provides a standard delegate type for a function with a return value.
            </summary>
        </member>
        <member name="T:Remotion.Func`14">
            <summary>
            Provides a standard delegate type for a function with a return value.
            </summary>
        </member>
        <member name="T:Remotion.Func`15">
            <summary>
            Provides a standard delegate type for a function with a return value.
            </summary>
        </member>
        <member name="T:Remotion.Func`16">
            <summary>
            Provides a standard delegate type for a function with a return value.
            </summary>
        </member>
        <member name="T:Remotion.Func`17">
            <summary>
            Provides a standard delegate type for a function with a return value.
            </summary>
        </member>
        <member name="T:Remotion.Func`18">
            <summary>
            Provides a standard delegate type for a function with a return value.
            </summary>
        </member>
        <member name="T:Remotion.Func`19">
            <summary>
            Provides a standard delegate type for a function with a return value.
            </summary>
        </member>
        <member name="T:Remotion.Func`20">
            <summary>
            Provides a standard delegate type for a function with a return value.
            </summary>
        </member>
        <member name="T:Remotion.Func`21">
            <summary>
            Provides a standard delegate type for a function with a return value.
            </summary>
        </member>
        <member name="T:Remotion.SuppressAttributesAttribute">
            <summary>
            When applied to a class, causes certain custom attributes to be filtered out by 
            <see cref="M:Remotion.Utilities.AttributeUtility.GetCustomAttributes(System.Type,System.Type,System.Boolean)"/> and 
            <see cref="M:Remotion.Utilities.AttributeUtility.IsDefined(System.Reflection.MemberInfo,System.Type,System.Boolean)"/>.
            </summary>
            <remarks>
            All attributes of the given base type or derived from it are filtered unless they are declared on the same level as the 
            <see cref="T:Remotion.SuppressAttributesAttribute"/>. Consider the following example:
            <example>
            <code>
            [A ("Base")]
            [B ("Base")]
            [C ("Base")]
            class Base
            {
            }
            
            [A ("Derived")]
            [B ("Derived")]
            [C ("Derived")]
            [SuppressAttributes (typeof (A))]
            class Derived : Base
            {
            }
            
            [A ("DerivedDerived")]
            [B ("DerivedDerived")]
            [C ("DerivedDerived")]
            class DerivedDerived : Derived
            {
            }
            
            class A : Attribute { ... }
            class B : A { ... }
            class C : Attribute { ... }
            </code>
            <para>
            In this example, a call to GetCustomAttributes on typeof (DerivedDerived) would yield the following attributes:
            [C ("Base"), A ("Derived"), B ("Derived"), C ("Derived"), C ("DerivedDerived")].
            </para>
            <para>
            [A ("Base")] and [A ("DerivedDerived")] are suppressed due
            to the <see cref="T:Remotion.SuppressAttributesAttribute"/> on Derived's declaration. [B ("Base")] and [B ("DerivedDerived")] are also suppressed, because
            they inherit from A, which is suppressed. The C attributes are not suppressed because they are not related to A; [A ("Derived")] and 
            [B ("Derived")] are not suppressed because they are declared on the same level as the <see cref="T:Remotion.SuppressAttributesAttribute"/>.
            </para>
            Do not suppress instances of <see cref="T:Remotion.SuppressAttributesAttribute"/>.
            </example>
            </remarks>
        </member>
        <member name="T:Remotion.Utilities.ArgumentEmptyException">
            <summary>
            This exception is thrown if an argument is empty although it must have a content.
            </summary>
        </member>
        <member name="T:Remotion.Utilities.ArgumentItemDuplicateException">
            <summary>
            This exception is thrown if a list argument contains duplicates.
            </summary>
        </member>
        <member name="T:Remotion.Utilities.ArgumentItemNullException">
            <summary>
            This exception is thrown if a list argument contains a null reference.
            </summary>
        </member>
        <member name="T:Remotion.Utilities.ArgumentItemTypeException">
            <summary>
            This exception is thrown if a list argument contains an item of the wrong type.
            </summary>
        </member>
        <member name="T:Remotion.Utilities.ArgumentTypeException">
            <summary>
            This exception is thrown if an argument has an invalid type.
            </summary>
        </member>
        <member name="T:Remotion.Utilities.CompoundComparer`1">
            <summary>
            Implements <see cref="T:System.Collections.Generic.IComparer`1"/> as a composite of several individual <see cref="T:System.Collections.Generic.IComparer`1"/> instances. If the first comparer
            compares equal, the second is used, and so on. This is similar to how
            <see cref="M:System.Linq.Enumerable.OrderBy``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,``1})"/> and
            <see cref="M:System.Linq.Enumerable.ThenBy``2(System.Linq.IOrderedEnumerable{``0},System.Func{``0,``1})"/> work.
            </summary>
        </member>
        <member name="T:Remotion.Collections.CompoundValueEqualityComparer`1">
            <summary>
            <para>Class supplying automatic consistent <see cref="M:Remotion.Collections.CompoundValueEqualityComparer`1.Equals(`0,`0)"/>, <see cref="M:Remotion.Collections.CompoundValueEqualityComparer`1.Equals(`0,System.Object)"/> and <see cref="M:Remotion.Collections.CompoundValueEqualityComparer`1.GetHashCode(`0)"/> 
            implementation for instances of its generic type parameter, using a <see cref="T:System.Func`2"/> which returns
            the instance members which shall participate in the equality/hash code calculation.
            </para>
            <para>
            Note: The implementation incurs the performance overhead of the creation of the <see cref="T:System.Object"/>-arrays every time
            <see cref="M:Remotion.Collections.CompoundValueEqualityComparer`1.Equals(`0,`0)"/> and <see cref="M:Remotion.Collections.CompoundValueEqualityComparer`1.GetHashCode(`0)"/> get called. Be aware of this when using in performance critical code.
            </para>
            </summary>
            <typeparam name="T">Type for which <see cref="M:Remotion.Collections.CompoundValueEqualityComparer`1.Equals(`0,`0)"/>, <see cref="M:Remotion.Collections.CompoundValueEqualityComparer`1.Equals(`0,System.Object)"/> and <see cref="M:Remotion.Collections.CompoundValueEqualityComparer`1.GetHashCode(`0)"/> are supplied.</typeparam>
        </member>
        <member name="M:Remotion.Collections.CompoundValueEqualityComparer`1.#ctor(System.Func{`0,System.Object[]})">
            <summary>
            Ctor which takes the <see cref="T:System.Func`2"/> which must return an <see cref="T:System.Object"/>-array
            of the members which shall participate in the equality/hash code calculation.
            </summary>
            <param name="relevantValueProvider"></param>
        </member>
        <member name="M:Remotion.Collections.CompoundValueEqualityComparer`1.Equals(`0,System.Object)">
            <summary>
            Standard conforming <see cref="M:System.Object.Equals(System.Object)"/> implementation comparing <typeparamref name="T"/> with an <see cref="T:System.Object"/>,
            using <see cref="M:Remotion.Collections.CompoundValueEqualityComparer`1.Equals(`0,`0)"/>
            </summary>
        </member>
        <member name="M:Remotion.Collections.CompoundValueEqualityComparer`1.Equals(`0,`0)">
            <summary>
            <see cref="M:System.Object.Equals(System.Object)"/> implementation comparing all <see cref="T:System.Object"/>|s in the array returned by the <see cref="T:System.Func`2"/>.
            </summary>
        </member>
        <member name="M:Remotion.Collections.CompoundValueEqualityComparer`1.GetHashCode(`0)">
            <summary>
            <see cref="M:Remotion.Collections.CompoundValueEqualityComparer`1.GetHashCode(`0)"/> implementation using all the <see cref="T:System.Object"/>|s in the array returned by the <see cref="T:System.Func`2"/>.
            </summary>
            <remarks>
            Returned hash code uses the <see cref="M:Remotion.Utilities.EqualityUtility.GetRotatedHashCode(System.Object[])"/> method.
            </remarks>
        </member>
        <member name="M:Remotion.Collections.CompoundValueEqualityComparer`1.GetEqualityParticipatingObjects(`0)">
            <summary>
            Returns the <see cref="T:System.Object"/>-array of the objects participating in the equality/hash code calculation for the passed instance.
            </summary>
        </member>
        <member name="T:Remotion.Collections.ComponentwiseEqualsAndHashcodeWrapper`1">
            <summary>
            Wrapper around an <see cref="T:System.Collections.Generic.IEnumerable`1"/> which supplies element-wise <see cref="M:System.Object.Equals(System.Object)"/> and
            <see cref="M:System.Object.GetHashCode"/> semantics. Use in conjunction with <see cref="T:Remotion.Collections.CompoundValueEqualityComparer`1"/>
            to get value based semantics for container class members.
            </summary>
            <typeparam name="TElement"></typeparam>
        </member>
        <member name="M:Remotion.Collections.ComponentwiseEqualsAndHashcodeWrapper`1.Equals(System.Object)">
            <summary>
            Compares the elements of the <see cref="T:Remotion.Collections.ComponentwiseEqualsAndHashcodeWrapper`1"/> for equality, if the passed <see cref="T:System.Object"/> 
            is an <see cref="T:Remotion.Collections.ComponentwiseEqualsAndHashcodeWrapper`1"/> .
            </summary>
        </member>
        <member name="M:Remotion.Collections.ComponentwiseEqualsAndHashcodeWrapper`1.GetHashCode">
            <summary>
            Returns a hash code based on the members of the <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
            </summary>
        </member>
        <member name="T:Remotion.Collections.ComponentwiseEqualsAndHashcodeWrapper">
            <summary>
            ComponentwiseEqualsAndHashcodeWrapper-factory: ComponentwiseEqualsAndHashcodeWrapper.New(<see cref="T:System.Collections.Generic.IEnumerable`1"/>).
            </summary>
        </member>
        <member name="T:Remotion.Collections.DictionaryExtensions">
            <summary>
            Provides useful extension methods for <see cref="T:System.Collections.Generic.IDictionary`2"/>.
            </summary>
        </member>
        <member name="T:Remotion.Collections.ListAdapter`2">
            <summary>
            Implements a different version of <see cref="T:System.Collections.Generic.IList`1"/> for an object that already implements <see cref="T:System.Collections.Generic.IList`1"/>. Delegates are used
            to convert items from the first to the second implementation.
            </summary>
            <remarks>
            Use this class if your only have an implementation of <c>IList&lt;T&gt;</c>, but need <c>IList&lt;U&gt;</c> instead (if, of course, T and U
            can be converted to each other).
            </remarks>
        </member>
        <member name="T:Remotion.Collections.ListAdapter">
            <summary>
            Provides factory methods to create instances of <see cref="T:Remotion.Collections.ListAdapter`2"/>.
            </summary>
        </member>
        <member name="T:Remotion.FunctionalProgramming.EnumerableExtensions">
            <summary>
            Provides a set of <see langword="static"/> methods for querying objects that implement <see cref="T:System.Collections.Generic.IEnumerable`1"/>.
            </summary>
        </member>
        <member name="M:Remotion.FunctionalProgramming.EnumerableExtensions.First``2(System.Collections.Generic.IEnumerable{``0},System.Func{``1})">
            <summary>
            Returns the first element of a sequence
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TException">Type type of the exception returned by <paramref name="createEmptySequenceException"/>.</typeparam>
            <param name="source">The <see cref="T:System.Collections.Generic.IEnumerable`1"/> to return the first element of. Must not be <see langword="null"/>.</param>
            <param name="createEmptySequenceException">
            This callback is invoked if the sequence is empty. The returned exception is then thrown to indicate this error. Must not be <see langword="null"/>.
            </param>
            <returns>The first element in the specified sequence.</returns>
        </member>
        <member name="M:Remotion.FunctionalProgramming.EnumerableExtensions.First``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Boolean},System.Func{``1})">
            <summary>
            Returns the first element in a sequence that satisfies a specified condition.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TException">Type type of the exception returned by <paramref name="createNoMatchingElementException"/>.</typeparam>
            <param name="source">The <see cref="T:System.Collections.Generic.IEnumerable`1"/> to return an element of. Must not be <see langword="null"/>.</param>
            <param name="predicate">A function to test each element for a condition. Must not be <see langword="null"/>.</param>
            <param name="createNoMatchingElementException">
            This callback is invoked if the sequence is empty or no element satisfies the condition in <paramref name="predicate"/>. 
            The returned exception is then thrown to indicate this error. Must not be <see langword="null"/>.
            </param>
            <returns>The first element in the sequence that passes the test in the specified predicate function.</returns>
        </member>
        <member name="M:Remotion.FunctionalProgramming.EnumerableExtensions.Single``2(System.Collections.Generic.IEnumerable{``0},System.Func{``1})">
            <summary>
            Returns the only element of a sequence, and throws an exception if there is not exactly one element in the sequence.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TException">Type type of the exception returned by <paramref name="createEmptySequenceException"/>.</typeparam>
            <param name="source">The <see cref="T:System.Collections.Generic.IEnumerable`1"/> to return the single element of. Must not be <see langword="null"/>.</param>
            <param name="createEmptySequenceException">
            This callback is invoked if the sequence is empty. 
            The returned exception is then thrown to indicate this error. Must not be <see langword="null"/>.
            </param>
            <returns>The single element in the specified sequence.</returns>
            <exception cref="T:System.InvalidOperationException">InvalidOperationException The specified sequence contains more than one element.</exception>
        </member>
        <member name="M:Remotion.FunctionalProgramming.EnumerableExtensions.Single``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Boolean},System.Func{``1})">
            <summary>
            Returns the only element of a sequence that satisfies a specified condition, and throws an exception if more than one such element exists.
            </summary>
            <typeparam name="TSource">The type of the elements of <paramref name="source"/>.</typeparam>
            <typeparam name="TException">Type type of the exception returned by <paramref name="createNoMatchingElementException"/>.</typeparam>
            <param name="source">The <see cref="T:System.Collections.Generic.IEnumerable`1"/> to return a single element of. Must not be <see langword="null"/>.</param>
            <param name="predicate">A function to test each element for a condition. Must not be <see langword="null"/>.</param>
            <param name="createNoMatchingElementException">
            This callback is invoked if the sequence is empty or no element satisfies the condition in <paramref name="predicate"/>. 
            The returned exception is then thrown to indicate this error. Must not be <see langword="null"/>.
            </param>
            <returns>The single element in the specified sequence.</returns>
            <exception cref="T:System.InvalidOperationException">InvalidOperationException The specified sequence contains more than one element.</exception>
        </member>
        <member name="M:Remotion.FunctionalProgramming.EnumerableExtensions.CreateSequence``1(``0,System.Func{``0,``0},System.Func{``0,System.Boolean})">
            <summary>
            Generates a sequence of elements from the <paramref name="source"/> element by applying the specified next-element function, 
            adding elements to the sequence while the current element satisfies the specified condition.
            </summary>
            <typeparam name="TSource">The type of the <paramref name="source"/> element.</typeparam>
            <param name="source">The object to be transformed into a sequence.</param>
            <param name="nextElementSelector">A function to retrieve the next element in the sequence. Must not be <see langword="null" />.</param>
            <param name="predicate">A function to test each element for a condition. Must not be <see langword="null" />.</param>
            <returns>
            A collection of elements containing the <paramref name="source"/> and all subsequent elements where each element satisfies a specified condition.
            </returns>
        </member>
        <member name="M:Remotion.FunctionalProgramming.EnumerableExtensions.CreateSequence``1(``0,System.Func{``0,``0})">
            <summary>
            Generates a sequence of elements from the <paramref name="source"/> element by applying the specified next-element function, 
            adding elements to the sequence while the current element is not <see langword="null" />.
            </summary>
            <typeparam name="TSource">The type of the <paramref name="source"/> element.</typeparam>
            <param name="source">The object to be transformed into a sequence.</param>
            <param name="nextElementSelector">A function to retrieve the next element in the sequence. Must not be <see langword="null" />.</param>
            <returns>
            A sequence of elements containing the <paramref name="source"/> and all subsequent elements 
            until the <paramref name="nextElementSelector"/> returns <see langword="null" />.
            </returns>
        </member>
        <member name="M:Remotion.FunctionalProgramming.EnumerableExtensions.SetEquals``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Determines whether two enumerable sequences contain the same set of elements without regarding the order or number of elements.
            This method constructs a <see cref="T:System.Collections.Generic.HashSet`1"/> from <paramref name="sequence1"/> and then calls <see cref="M:System.Collections.Generic.HashSet`1.SetEquals(System.Collections.Generic.IEnumerable{`0})"/>.
            The <see cref="P:System.Collections.Generic.EqualityComparer`1.Default"/> equality comparer is used to check elements for equality.
            </summary>
            <typeparam name="T">The element type of the compared sequences.</typeparam>
            <param name="sequence1">The first sequence.</param>
            <param name="sequence2">The second sequence.</param>
            <returns><see langword="true"/> if all elements of <paramref name="sequence1"/> are present in <paramref name="sequence2"/> and all
            elements of <paramref name="sequence2"/> are present in <paramref name="sequence1"/>. Order and number of elements are not compared.</returns>
            <exception cref="T:System.ArgumentNullException">One of the sequences is <see langword="null"/>.</exception>
        </member>
        <member name="M:Remotion.FunctionalProgramming.EnumerableExtensions.Zip``3(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``1},System.Func{``0,``1,``2})">
            <summary>
            Combines two sequences into a single sequence. The resulting sequence's item type is calculated using the given 
            <paramref name="resultSelector"/>.
            </summary>
            <typeparam name="T1">The item type of the first sequence.</typeparam>
            <typeparam name="T2">The item type of the second sequence.</typeparam>
            <typeparam name="TResult">The item type of the result sequence.</typeparam>
            <param name="first">The first sequence.</param>
            <param name="second">The second sequence.</param>
            <param name="resultSelector">A selector delegate that combines items of the <paramref name="first"/> and the <paramref name="second"/> 
            sequence.</param>
            <returns>
            A "zipped" sequence, consisting of the combined elements of the <paramref name="first"/> and the <paramref name="second"/> sequence.
            </returns>
            <exception cref="T:System.ArgumentNullException">One of the parameters is null.</exception>
            <remarks>
            If the input sequences do not have the same number of arguments, the result sequence will have as many arguments as the smaller input sequence.
            </remarks>
        </member>
        <member name="M:Remotion.FunctionalProgramming.EnumerableExtensions.Zip``2(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``1})">
            <summary>
            Combines two sequences into a single sequence of <see cref="T:Remotion.Collections.Tuple`2"/> values.
            </summary>
            <typeparam name="T1">The item type of the first sequence.</typeparam>
            <typeparam name="T2">The item type of the second sequence.</typeparam>
            <param name="first">The first sequence.</param>
            <param name="second">The second sequence.</param>
            <returns>
            A "zipped" sequence, consisting of the combined elements of the <paramref name="first"/> and the <paramref name="second"/> sequence.
            </returns>
            <exception cref="T:System.ArgumentNullException">One of the parameters is null.</exception>
            <remarks>
            If the input sequences do not have the same number of arguments, the result sequence will have as many arguments as the smaller input sequence.
            </remarks>
        </member>
        <member name="M:Remotion.FunctionalProgramming.EnumerableExtensions.ConvertToCollection``1(System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Returns an object of type <see cref="T:System.Collections.Generic.ICollection`1"/> that has the same items as the source <see cref="T:System.Collections.Generic.IEnumerable`1"/>. If the source 
            <see cref="T:System.Collections.Generic.IEnumerable`1"/> already implements <see cref="T:System.Collections.Generic.ICollection`1"/>, the same instance is returned without any copying taking place.
            </summary>
            <typeparam name="T">The item type of the <paramref name="source"/> sequence (and the result <see cref="T:System.Collections.Generic.ICollection`1"/>).</typeparam>
            <param name="source">The <see cref="T:System.Collections.Generic.IEnumerable`1"/> to be returned as an <see cref="T:System.Collections.Generic.ICollection`1"/> instance.</param>
            <returns><paramref name="source"/> if that object implements <see cref="T:System.Collections.Generic.ICollection`1"/>, otherwise a new collection with the same items
            as <paramref name="source"/>.</returns>
        </member>
        <member name="M:Remotion.FunctionalProgramming.EnumerableExtensions.Concat``1(System.Collections.Generic.IEnumerable{``0},``0)">
            <summary>
            Returns a sequence that has the same elements as the given <paramref name="source"/> sequence, with the given <paramref name="item"/> appended
            to the end. This method is similar to <see cref="M:System.Linq.Enumerable.Concat``1(System.Collections.Generic.IEnumerable{``0},System.Collections.Generic.IEnumerable{``0})"/>, but allows a single item to be appended to the sequence.
            </summary>
            <typeparam name="T">The element type of the <paramref name="source"/> sequence.</typeparam>
            <param name="source">The sequence to which a new item should be appended.</param>
            <param name="item">The item to be appended.</param>
            <returns>
            A lazy sequence that first enumerates the items from the <paramref name="source"/> sequence, then yields the <paramref name="item"/>.
            </returns>
        </member>
        <member name="M:Remotion.FunctionalProgramming.EnumerableExtensions.SingleOrDefault``2(System.Collections.Generic.IEnumerable{``0},System.Func{``1})">
            <summary>
            Works like <see cref="M:System.Linq.Enumerable.SingleOrDefault``1(System.Collections.Generic.IEnumerable{``0})"/> but throws a custom
            exception if the sequence contains more than one element.
            </summary>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TException">The type of the exception.</typeparam>
            <param name="source">The source sequence.</param>
            <param name="createMultipleElementsException">The exception provider.</param>
            <returns></returns>
        </member>
        <member name="M:Remotion.FunctionalProgramming.EnumerableExtensions.SingleOrDefault``2(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Boolean},System.Func{``1})">
            <summary>
            Works like <see cref="M:System.Linq.Enumerable.SingleOrDefault``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.Boolean})"/>
            but throws a custom exception if the sequence contains more than one matching element.
            </summary>
            <typeparam name="TSource">The type of the source.</typeparam>
            <typeparam name="TException">The type of the exception.</typeparam>
            <param name="source">The source sequence.</param>
            <param name="predicate">The predicate applied to the sequence.</param>
            <param name="createMultipleMatchingElementsException">The exception provider.</param>
            <returns></returns>
        </member>
        <member name="M:Remotion.FunctionalProgramming.EnumerableExtensions.ApplySideEffect``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0})">
            <summary>
            Returns a sequence that lazily applies a side effect to each item of a source sequence.
            </summary>
            <typeparam name="T">The item type of the <see cref="T:System.Collections.Generic.IEnumerable`1"/> sequence.</typeparam>
            <param name="source">The source sequence.</param>
            <param name="sideEffect">The side effect to apply to each item.</param>
            <returns>A sequence containing the same items as the <paramref name="source"/> sequence that lazily applies the given 
            <paramref name="sideEffect"/> to each item while the sequence is enumerated.</returns>
            <remarks>
            This method is used to associate a side effect with an enumerable sequence. One use case is to add consistency checks to the items of a 
            sequence that are executed when the sequence is enumerated. 
            </remarks>
        </member>
        <member name="T:Remotion.Collections.ReadOnlyDictionary`2">
            <summary>
            Read-only wrapper around an <see cref="T:System.Collections.Generic.IDictionary`2"/> which itself explicitely implements <see cref="T:System.Collections.Generic.IDictionary`2"/>.
            </summary>
            <remarks>
            Behaves analogue to <see cref="T:System.Collections.ObjectModel.ReadOnlyCollection`1"/>, i.e. not supported methods required by <see cref="T:System.Collections.Generic.IDictionary`2"/> 
            throw <see cref="T:System.NotSupportedException"/>|s.
            <para/>
            </remarks>
        </member>
        <member name="T:Remotion.Collections.SetBasedCacheKey`1">
            <summary>
            Takes a set of objects and provides value-type semantics to the set, so that it can be used as a cache key.
            </summary>
            <remarks>
            <para>
            This type implements <see cref="M:Remotion.Collections.SetBasedCacheKey`1.GetHashCode"/> by calculating the hash codes of all elements in the set wrapped by this collection
            and combining them in an (order-independent) way. Therefore, two instances of this type give the same hash codes if the elements wrapped
            by them give the same hash codes. It is not guaranteed that two instances of this type give different hash codes if the elements give
            different hash codes.
            </para>
            <para>
            Similarly, <see cref="M:Remotion.Collections.SetBasedCacheKey`1.Equals(System.Object)"/> is implemented by comparing the elements of the sets with each other. Two instances of this type
            compare equal if and only if they contain equal objects (without considering order).
            </para>
            <para>
            For efficiency, the hash codes of instances of this type are cached. Changes to the objects wrapped by an instance do not
            influance the hash code and should therefore be avoided.
            </para>
            <para>
            Note that, because this type is based on <see cref="T:Remotion.Collections.Set`1"/>, equal elements are regarded as one. This is, a set (1, 1, 2, 2) is equivalent to 
            a set (1, 2).
            </para>
            </remarks>
        </member>
        <member name="T:Remotion.Configuration.TypeDiscovery.ByFileIncludeRootAssemblyElement">
            <summary>
            Configures a root assembly or a set of root assemblies to be included by a file name or pattern.
            </summary>
        </member>
        <member name="T:Remotion.Configuration.TypeDiscovery.ByFileRootAssemblyElementBase">
            <summary>
            Base class for classes configuring a root assembly or a set of root assemblies by a file name or pattern.
            </summary>
        </member>
        <member name="T:Remotion.Configuration.TypeDiscovery.ByNameRootAssemblyElement">
            <summary>
            Configures a root assembly by its <see cref="T:System.Reflection.AssemblyName"/>.
            </summary>
        </member>
        <member name="T:Remotion.Configuration.TypeDiscovery.ByNameRootAssemblyElementCollection">
            <summary>
            Configures a set of <see cref="T:Remotion.Configuration.TypeDiscovery.ByNameRootAssemblyElement"/> objects.
            </summary>
        </member>
        <member name="T:Remotion.Configuration.TypeDiscovery.ByFileRootAssemblyElementCollection">
            <summary>
            Configures a set of <see cref="T:Remotion.Configuration.TypeDiscovery.ByFileRootAssemblyElementBase"/> objects.
            </summary>
        </member>
        <member name="T:Remotion.Configuration.TypeDiscovery.ByFileExcludeRootAssemblyElement">
            <summary>
            Configures a root assembly or a set of root assemblies to be excluded by a file name or pattern.
            </summary>
        </member>
        <member name="T:Remotion.Configuration.TypeDiscovery.RootAssembliesElement">
            <summary>
            Configures the root assemblies to be used for type discovery.
            </summary>
        </member>
        <member name="M:Remotion.Configuration.TypeDiscovery.RootAssembliesElement.CreateRootAssemblyFinder(Remotion.Reflection.TypeDiscovery.AssemblyLoading.IAssemblyLoader)">
            <summary>
            Creates a <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.CompositeRootAssemblyFinder"/> representing the assembly specifications given by <see cref="P:Remotion.Configuration.TypeDiscovery.RootAssembliesElement.ByName"/> and
            <see cref="P:Remotion.Configuration.TypeDiscovery.RootAssembliesElement.ByFile"/>.
            </summary>
            <returns>A <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.CompositeRootAssemblyFinder"/> for the assembly specifications.</returns>
        </member>
        <member name="P:Remotion.Configuration.TypeDiscovery.RootAssembliesElement.ByName">
            <summary>
            Gets a <see cref="T:Remotion.Configuration.TypeDiscovery.ByNameRootAssemblyElementCollection"/> allowing to specify assemblies by <see cref="T:System.Reflection.AssemblyName"/>.
            </summary>
            <value>A <see cref="T:Remotion.Configuration.TypeDiscovery.ByNameRootAssemblyElementCollection"/> allowing to specify assemblies by <see cref="T:System.Reflection.AssemblyName"/>.</value>
        </member>
        <member name="P:Remotion.Configuration.TypeDiscovery.RootAssembliesElement.ByFile">
            <summary>
            Gets a <see cref="T:Remotion.Configuration.TypeDiscovery.ByFileRootAssemblyElementCollection"/> allowing to specify assemblies by file name patterns.
            </summary>
            <value>A <see cref="T:Remotion.Configuration.TypeDiscovery.ByFileRootAssemblyElementCollection"/> allowing to specify assemblies by file name patterns.</value>
        </member>
        <member name="T:Remotion.Configuration.TypeDiscovery.TypeDiscoveryConfiguration">
            <summary>
            Configures the type discovery performed by <see cref="M:Remotion.Reflection.TypeDiscovery.ContextAwareTypeDiscoveryUtility.GetTypeDiscoveryService"/>.
            </summary>
        </member>
        <member name="M:Remotion.Configuration.TypeDiscovery.TypeDiscoveryConfiguration.SetCurrent(Remotion.Configuration.TypeDiscovery.TypeDiscoveryConfiguration)">
            <summary>
            Sets the <see cref="P:Remotion.Configuration.TypeDiscovery.TypeDiscoveryConfiguration.Current"/> <see cref="T:Remotion.Configuration.TypeDiscovery.TypeDiscoveryConfiguration"/> instance.
            </summary>
            <param name="configuration">The new configuration to set as the <see cref="P:Remotion.Configuration.TypeDiscovery.TypeDiscoveryConfiguration.Current"/> configuration.</param>
        </member>
        <member name="M:Remotion.Configuration.TypeDiscovery.TypeDiscoveryConfiguration.#ctor">
            <summary>
            Initializes a new default instance of the <see cref="T:Remotion.Configuration.TypeDiscovery.TypeDiscoveryConfiguration"/> class. To load the configuration from a config file,
            use <see cref="M:Remotion.Configuration.ConfigurationWrapper.GetSection(System.String)"/> instead.
            </summary>
        </member>
        <member name="M:Remotion.Configuration.TypeDiscovery.TypeDiscoveryConfiguration.CreateTypeDiscoveryService">
            <summary>
            Creates an <see cref="T:System.ComponentModel.Design.ITypeDiscoveryService"/> instance as indicated by <see cref="P:Remotion.Configuration.TypeDiscovery.TypeDiscoveryConfiguration.Mode"/>.
            </summary>
            <returns>A new <see cref="T:System.ComponentModel.Design.ITypeDiscoveryService"/> that discovers types as indicated by <see cref="P:Remotion.Configuration.TypeDiscovery.TypeDiscoveryConfiguration.Mode"/>.</returns>
        </member>
        <member name="P:Remotion.Configuration.TypeDiscovery.TypeDiscoveryConfiguration.Current">
            <summary>
            Gets the current <see cref="T:Remotion.Configuration.TypeDiscovery.TypeDiscoveryConfiguration"/> instance. This is used by 
            <see cref="M:Remotion.Reflection.TypeDiscovery.ContextAwareTypeDiscoveryUtility.GetTypeDiscoveryService"/> to retrieve a <see cref="T:System.ComponentModel.Design.ITypeDiscoveryService"/> instance if
            <see cref="P:Remotion.Utilities.DesignerUtility.IsDesignMode"/> is not set to <see langword="true"/> and no specific 
            <see cref="P:Remotion.Reflection.TypeDiscovery.ContextAwareTypeDiscoveryUtility.DefaultNonDesignModeService"/> instance has been set.
            </summary>
            <value>The current <see cref="T:Remotion.Configuration.TypeDiscovery.TypeDiscoveryConfiguration"/>.</value>
        </member>
        <member name="P:Remotion.Configuration.TypeDiscovery.TypeDiscoveryConfiguration.Mode">
            <summary>
            Gets or sets the <see cref="T:Remotion.Configuration.TypeDiscovery.TypeDiscoveryMode"/> to be used for type discovery.
            </summary>
            <value>The <see cref="T:Remotion.Configuration.TypeDiscovery.TypeDiscoveryMode"/> to be used for type discovery.</value>
        </member>
        <member name="P:Remotion.Configuration.TypeDiscovery.TypeDiscoveryConfiguration.CustomRootAssemblyFinder">
            <summary>
            Gets a <see cref="T:Remotion.Configuration.TypeElement`1"/> describing the custom <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.IRootAssemblyFinder"/> to be used. This is only relevant
            if <see cref="P:Remotion.Configuration.TypeDiscovery.TypeDiscoveryConfiguration.Mode"/> is set to <see cref="F:Remotion.Configuration.TypeDiscovery.TypeDiscoveryMode.CustomRootAssemblyFinder"/>. In this mode, an 
            <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyFinderTypeDiscoveryService"/> is created, and an instance of the specified <see cref="P:Remotion.Configuration.TypeDiscovery.TypeDiscoveryConfiguration.CustomRootAssemblyFinder"/> type is
            employed for finding the root assemblies used for type discovery. The given type must have a default constructor.
            </summary>
            <value>A <see cref="T:Remotion.Configuration.TypeElement`1"/> describing the custom <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.IRootAssemblyFinder"/> type to be used.</value>
        </member>
        <member name="P:Remotion.Configuration.TypeDiscovery.TypeDiscoveryConfiguration.SpecificRootAssemblies">
            <summary>
            Gets a <see cref="T:Remotion.Configuration.TypeDiscovery.RootAssembliesElement"/> describing specific root assemblies to be used. This is only relevant
            if <see cref="P:Remotion.Configuration.TypeDiscovery.TypeDiscoveryConfiguration.Mode"/> is set to <see cref="F:Remotion.Configuration.TypeDiscovery.TypeDiscoveryMode.SpecificRootAssemblies"/>. In this mode, an 
            <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyFinderTypeDiscoveryService"/> is created, and the given root assemblies are employed for type discovery.
            Note that even if an assembly is specified as a root assembly, the default filtering rules (<see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyLoading.ApplicationAssemblyLoaderFilter"/>)
            still apply even for that assembly.
            </summary>
            <value>A <see cref="T:Remotion.Configuration.TypeDiscovery.RootAssembliesElement"/> describing specific root assemblies to be used.</value>
        </member>
        <member name="P:Remotion.Configuration.TypeDiscovery.TypeDiscoveryConfiguration.CustomTypeDiscoveryService">
            <summary>
            Gets a <see cref="T:Remotion.Configuration.TypeElement`1"/> describing the custom <see cref="T:System.ComponentModel.Design.ITypeDiscoveryService"/> to be used. This is only relevant
            if <see cref="P:Remotion.Configuration.TypeDiscovery.TypeDiscoveryConfiguration.Mode"/> is set to <see cref="F:Remotion.Configuration.TypeDiscovery.TypeDiscoveryMode.CustomTypeDiscoveryService"/>. In this mode, an 
            instance of the specified <see cref="P:Remotion.Configuration.TypeDiscovery.TypeDiscoveryConfiguration.CustomTypeDiscoveryService"/> type is
            employed for type discovery. The given type must have a default constructor.
            </summary>
            <value>A <see cref="T:Remotion.Configuration.TypeElement`1"/> describing the custom <see cref="T:System.ComponentModel.Design.ITypeDiscoveryService"/> type to be used.</value>
        </member>
        <member name="T:Remotion.Configuration.TypeDiscovery.TypeDiscoveryMode">
            <summary>
            Defines how type discovery should work.
            </summary>
        </member>
        <member name="F:Remotion.Configuration.TypeDiscovery.TypeDiscoveryMode.Automatic">
            <summary>
            Chooses automatic type discovery - the application's bin directory is searched for assemblies. The types are discovered from those assemblies
            and their referenced assemblies.
            </summary>
        </member>
        <member name="F:Remotion.Configuration.TypeDiscovery.TypeDiscoveryMode.CustomRootAssemblyFinder">
            <summary>
            Chooses a custom <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.IRootAssemblyFinder"/> which searches for root assemblies. The types are discovered from those assemblies. 
            Whether types from referenced assemblies are also included is defined by the <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.IRootAssemblyFinder"/>. 
            See <see cref="P:Remotion.Configuration.TypeDiscovery.TypeDiscoveryConfiguration.CustomRootAssemblyFinder"/>.
            </summary>
        </member>
        <member name="F:Remotion.Configuration.TypeDiscovery.TypeDiscoveryMode.SpecificRootAssemblies">
            <summary>
            Chooses a number of specific root assemblies. The types are discovered from those assemblies. Whether types from referenced assemblies are 
            also included is defined by the user.
            See <see cref="P:Remotion.Configuration.TypeDiscovery.TypeDiscoveryConfiguration.SpecificRootAssemblies"/>.
            </summary>
        </member>
        <member name="F:Remotion.Configuration.TypeDiscovery.TypeDiscoveryMode.CustomTypeDiscoveryService">
            <summary>
            Chooses a custom <see cref="T:System.ComponentModel.Design.ITypeDiscoveryService"/> implementation. The types are discovered by that service.
            See <see cref="P:Remotion.Configuration.TypeDiscovery.TypeDiscoveryConfiguration.CustomTypeDiscoveryService"/>.
            </summary>
        </member>
        <member name="T:Remotion.Diagnostics.IOuterProductProcessor">
            <summary>
            Interface to a class which can be passed to <see cref="M:Remotion.Diagnostics.OuterProductIndexGenerator.ProcessOuterProduct(Remotion.Diagnostics.IOuterProductProcessor)"/>.
            <see cref="M:Remotion.Diagnostics.OuterProductIndexGenerator.ProcessOuterProduct(Remotion.Diagnostics.IOuterProductProcessor)"/> will then call its methods <see cref="M:Remotion.Diagnostics.IOuterProductProcessor.DoBeforeLoop"/>
            and <see cref="M:Remotion.Diagnostics.IOuterProductProcessor.DoAfterLoop"/> before and after it starts iterating over a new outer product dimension.
            </summary>
        </member>
        <member name="M:Remotion.Diagnostics.IOuterProductProcessor.DoBeforeLoop">
            <summary>
            Processor callback invoked before a nested for loop starts.
            </summary>
            <returns><see langword="true" /> to continue looping, <see langword="false" /> to break from the current loop.</returns>
        </member>
        <member name="M:Remotion.Diagnostics.IOuterProductProcessor.DoAfterLoop">
            <summary>
            Processor callback invoked after a nested for loop has finished.
            </summary>
            <returns><see langword="true" /> to continue looping, <see langword="false" /> to break from the current loop.</returns>
        </member>
        <member name="M:Remotion.Diagnostics.IOuterProductProcessor.SetProcessingState(Remotion.Diagnostics.OuterProductProcessingState)">
            <summary>
            Before each callback to the processor the OuterProductIndexGenerator class sets the current <see cref="T:Remotion.Diagnostics.OuterProductProcessingState"/> through a
            call to this method. The processor class is expected to store the <see cref="T:Remotion.Diagnostics.OuterProductProcessingState"/> to be able to access
            it during the callbacks.
            </summary>
            <param name="processingState"></param>
        </member>
        <member name="P:Remotion.Diagnostics.IOuterProductProcessor.ProcessingState">
            <summary>
            The current <see cref="T:Remotion.Diagnostics.OuterProductProcessingState"/> to be used during callbacks. Set by the OuterProductIndexGenerator class
            in call to <see cref="M:Remotion.Diagnostics.IOuterProductProcessor.SetProcessingState(Remotion.Diagnostics.OuterProductProcessingState)"/>.
            </summary>
        </member>
        <member name="T:Remotion.Diagnostics.OuterProductProcessingState">
            <summary>
            The current state of the outer product / nested for loops traversal.
            DimensionIndices supplies the current permutation of indices (array with an entry for each for-loop).
            DimensionIndex is the currently running for-loop; ElementIndex (=DimensionIndices[DimensionIndex]) is the value of the loop-variable of the currently running for-loop.
            IsInnermostLoop, IsOutermostLoop can be queried to treat the innermost and outermost loop differently, if so required.
            </summary>
        </member>
        <member name="M:Remotion.Diagnostics.OuterProductProcessingState.#ctor(Remotion.Diagnostics.OuterProductIndexGenerator,System.Int32)">
            <summary>
            Initializes a ProcessingState with an OuterProductIndexGenerator reference and the current dimension index 
            (= nested-for-loop loop-variable index).
            </summary>
        </member>
        <member name="M:Remotion.Diagnostics.OuterProductProcessingState.GetDimensionIndicesCopy">
            <summary>
            Returns a copy of the current <see cref="P:Remotion.Diagnostics.OuterProductProcessingState.DimensionIndices"/>-array.
            Use if you want to e.g. store the generated dimension indices permutations in your own collection.
            </summary>
        </member>
        <member name="P:Remotion.Diagnostics.OuterProductProcessingState.DimensionIndex">
            <summary>
            The outer product dimension which is currently processed (i.e. the index of the currently running for-loop).
            </summary>
        </member>
        <member name="P:Remotion.Diagnostics.OuterProductProcessingState.NumberElementsPerDimension">
            <summary>
            Integer array containing the number of elements in each outer product dimension.
            </summary>
        </member>
        <member name="P:Remotion.Diagnostics.OuterProductProcessingState.DimensionIndices">
            <summary>
            Integer array containing the current permutation of outer product indices (i.e. each array entry is the current value of each for-loop variable;
            <see cref="P:Remotion.Diagnostics.OuterProductProcessingState.ElementIndex"/>).
            </summary>
        </member>
        <member name="P:Remotion.Diagnostics.OuterProductProcessingState.NumberElementsOverall">
            <summary>
            The overall number of elements in the outer product.
            </summary>
        </member>
        <member name="P:Remotion.Diagnostics.OuterProductProcessingState.ElementIndex">
            <summary>
            ElementIndex (=DimensionIndices[DimensionIndex]) is the value of the loop-variable of the currently running for-loop.
            </summary>
        </member>
        <member name="P:Remotion.Diagnostics.OuterProductProcessingState.IsFirstLoopElement">
            <summary>
            Whether the element is the first element in the current for-loop.
            </summary>
        </member>
        <member name="P:Remotion.Diagnostics.OuterProductProcessingState.IsLastLoopElement">
            <summary>
            Whether the element is the last element in the current for-loop.
            </summary>
        </member>
        <member name="P:Remotion.Diagnostics.OuterProductProcessingState.IsInnermostLoop">
            <summary>
            Whether the current for-loop is the innermost loop.
            </summary>
        </member>
        <member name="P:Remotion.Diagnostics.OuterProductProcessingState.IsOutermostLoop">
            <summary>
            Whether the current for-loop is the outermost loop.
            </summary>
        </member>
        <member name="P:Remotion.Diagnostics.OuterProductProcessingState.NumberElementsProcessed">
            <summary>
            The overall elements of the outer product which have already been processed.
            </summary>
        </member>
        <member name="T:Remotion.Diagnostics.OuterProductProcessorBase">
            <summary>
            Convenience class to derive OuterProductIndexGenerator-processors from. Already supplies ProcessingState-functionality,
            just requiring override implementation of <see cref="M:Remotion.Diagnostics.OuterProductProcessorBase.DoBeforeLoop"/> and <see cref="M:Remotion.Diagnostics.OuterProductProcessorBase.DoAfterLoop"/>.
            </summary>
        </member>
        <member name="M:Remotion.Diagnostics.OuterProductProcessorBase.DoBeforeLoop">
            <summary>
            Default implementation for the callback before a new for loop starts. Simply keeps on looping.
            Override to implement your own functionality.
            </summary>
            <returns><see cref="M:Remotion.Diagnostics.IOuterProductProcessor.DoBeforeLoop"/></returns>
        </member>
        <member name="M:Remotion.Diagnostics.OuterProductProcessorBase.DoAfterLoop">
            <summary>
            Default implementation for the callback after a for loop finishes. Simply keeps on looping.
            Override to implement your own functionality.
            </summary>
            <returns><see cref="M:Remotion.Diagnostics.IOuterProductProcessor.DoAfterLoop"/></returns>
        </member>
        <member name="M:Remotion.Diagnostics.OuterProductProcessorBase.SetProcessingState(Remotion.Diagnostics.OuterProductProcessingState)">
            <summary>
            Internal use only: Used by OuterProductIndexGenerator class to set the current <see cref="P:Remotion.Diagnostics.OuterProductProcessorBase.ProcessingState"/> before invoking a callback.
            </summary>
            <param name="processingState"></param>
        </member>
        <member name="P:Remotion.Diagnostics.OuterProductProcessorBase.ProcessingState">
            <summary>
            The current <see cref="P:Remotion.Diagnostics.OuterProductProcessorBase.ProcessingState"/> to be used during callbacks.
            </summary>
        </member>
        <member name="T:Remotion.ExtensibleEnums.ExtensibleEnumConverter">
            <summary>
            Provides support for converting extensible enums to and from instances of type <see cref="T:System.String"/>.
            </summary>
        </member>
        <member name="M:Remotion.ExtensibleEnums.ExtensibleEnumConverter.#ctor(System.Type)">
            <summary>
            Initializes a new instance of the <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnumConverter"/> class.
            </summary>
            <param name="extensibleEnumType">The extensible enum type to be converted from and to.</param>
        </member>
        <member name="M:Remotion.ExtensibleEnums.ExtensibleEnumConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert an object of the given type to the <see cref="P:Remotion.ExtensibleEnums.ExtensibleEnumConverter.ExtensibleEnumType"/>, using the specified context. 
            This method returns <see langword="true"/> if <paramref name="sourceType"/> is <see cref="T:System.String"/>; <see langword="false"/> otherwise.
            </summary>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. Ignored by this 
            implementation.</param>
            <param name="sourceType">A <see cref="T:System.Type"/> that represents the type you want to convert from.</param>
            <returns>
            <see langword="true"/> if this converter can perform the conversion; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:Remotion.ExtensibleEnums.ExtensibleEnumConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary>
            Returns whether this converter can convert an object of the <see cref="P:Remotion.ExtensibleEnums.ExtensibleEnumConverter.ExtensibleEnumType"/> to the given destination type, using the 
            specified context. This
            method returns <see langword="true"/> if <paramref name="destinationType"/> is <see cref="T:System.String"/>; <see langword="false"/> otherwise.
            </summary>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. Ignored by this 
            implementation.</param>
            <param name="destinationType">A <see cref="T:System.Type"/> that represents the type you want to convert to.</param>
            <returns>
            <see langword="true"/> if this converter can perform the conversion; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:Remotion.ExtensibleEnums.ExtensibleEnumConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
            <summary>
            Converts the given object to the <see cref="P:Remotion.ExtensibleEnums.ExtensibleEnumConverter.ExtensibleEnumType"/>, using the specified context and culture information.
            </summary>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. Ignored by this
            implementation</param>
            <param name="culture">The <see cref="T:System.Globalization.CultureInfo"/> to use as the current culture. Ignored by this implementation</param>
            <param name="value">The <see cref="T:System.Object"/> to convert. Must be a <see cref="T:System.String"/> value.</param>
            <returns>
            An <see cref="T:System.Object"/> that represents the converted value.
            </returns>
            <exception cref="T:System.NotSupportedException">
            The conversion cannot be performed.
            </exception>
            <exception cref="T:System.Collections.Generic.KeyNotFoundException">
            The value is of a convertible type, but the <see cref="P:Remotion.ExtensibleEnums.ExtensibleEnumConverter.ExtensibleEnumType"/> does not define a corresponding value.
            </exception>
        </member>
        <member name="M:Remotion.ExtensibleEnums.ExtensibleEnumConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
            <summary>
            Converts the given extensible enum object to the given destination type, using the specified context and culture information.
            </summary>
            <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. Ignored
            by this implementation.</param>
            <param name="culture">A <see cref="T:System.Globalization.CultureInfo"/>. If <see langword="null"/> is passed, the current culture is 
            assumed. Ignored by this implementation.</param>
            <param name="value">The <see cref="T:System.Object"/> to convert. Must be an instance of <see cref="P:Remotion.ExtensibleEnums.ExtensibleEnumConverter.ExtensibleEnumType"/>.</param>
            <param name="destinationType">The <see cref="T:System.Type"/> to convert the <paramref name="value"/> parameter to. Must be
            <see cref="T:System.String"/>.</param>
            <returns>
            An <see cref="T:System.Object"/> that represents the converted value.
            </returns>
            <exception cref="T:System.ArgumentNullException">
            The <paramref name="destinationType"/> parameter is null.
            </exception>
            <exception cref="T:System.NotSupportedException">
            The conversion cannot be performed.
            </exception>
        </member>
        <member name="P:Remotion.ExtensibleEnums.ExtensibleEnumConverter.ExtensibleEnumType">
            <summary>
            Gets the extensible enum type to be be converted from and to.
            </summary>
            <value>The extensible enum type.</value>
        </member>
        <member name="T:Remotion.ExtensibleEnums.ExtensibleEnumInfo`1">
            <summary>
            Holds information about an extensible enum value, including the <see cref="P:Remotion.ExtensibleEnums.ExtensibleEnumInfo`1.Value"/> itself and meta-info such as the 
            <see cref="P:Remotion.ExtensibleEnums.ExtensibleEnumInfo`1.DefiningMethod"/> and the associated <see cref="P:Remotion.ExtensibleEnums.ExtensibleEnumInfo`1.ResourceManager"/>.
            </summary>
            <typeparam name="T">The extensible enum type.</typeparam>
            <remarks>
            Instances of this class are immutable, i.e. they will not change once initialized.
            </remarks>
            <threadsafety static="true" instance="true"/>
        </member>
        <member name="T:Remotion.ExtensibleEnums.IExtensibleEnumInfo">
            <summary>
            Provides a non-generic interface for the <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnumInfo`1"/> class.
            </summary>
            <remarks>
            Do not implement this interface yourself, use it only when working with extensible enums in a reflective context, e.g. via the 
            <see cref="T:Remotion.ExtensibleEnums.Infrastructure.ExtensibleEnumDefinitionCache"/> class.
            </remarks>
        </member>
        <member name="P:Remotion.ExtensibleEnums.IExtensibleEnumInfo.Value">
            <summary>
            Gets the <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnum`1"/> value described by this instance.
            </summary>
            <value>The value.</value>
        </member>
        <member name="P:Remotion.ExtensibleEnums.IExtensibleEnumInfo.DefiningMethod">
            <summary>
            Gets the method defining the <see cref="P:Remotion.ExtensibleEnums.IExtensibleEnumInfo.Value"/> described by this instance.
            </summary>
            <value>The defining method of the <see cref="P:Remotion.ExtensibleEnums.IExtensibleEnumInfo.Value"/>.</value>
        </member>
        <member name="P:Remotion.ExtensibleEnums.IExtensibleEnumInfo.ResourceManager">
            <summary>
            Gets the resource manager associated with the <see cref="P:Remotion.ExtensibleEnums.IExtensibleEnumInfo.DefiningMethod"/> of the <see cref="P:Remotion.ExtensibleEnums.IExtensibleEnumInfo.Value"/> described by this instance.
            </summary>
            <value>The resource manager of this <see cref="P:Remotion.ExtensibleEnums.IExtensibleEnumInfo.Value"/>.</value>
        </member>
        <member name="P:Remotion.ExtensibleEnums.IExtensibleEnumInfo.PositionalKey">
            <summary>
            Gets the positional key associated with the <see cref="P:Remotion.ExtensibleEnums.IExtensibleEnumInfo.Value"/>. The positional key determines the position of the <see cref="P:Remotion.ExtensibleEnums.IExtensibleEnumInfo.Value"/>
            in the list of all values of the extensible enum type.
            </summary>
            <value>The positional key.</value>
        </member>
        <member name="M:Remotion.ExtensibleEnums.ExtensibleEnumInfo`1.#ctor(`0,System.Reflection.MethodInfo,Remotion.Globalization.IResourceManager,System.Double)">
            <summary>
            Initializes a new instance of the <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnumInfo`1"/> class.
            </summary>
            <param name="value">The value.</param>
            <param name="declaringMethod">The declaring method of the value.</param>
            <param name="resourceManager">The resource manager for the value.</param>
            <param name="positionalKey">The positional key of the value.</param>
        </member>
        <member name="P:Remotion.ExtensibleEnums.ExtensibleEnumInfo`1.Value">
            <summary>
            Gets the <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnum`1"/> value described by this instance.
            </summary>
            <value>The value.</value>
        </member>
        <member name="P:Remotion.ExtensibleEnums.ExtensibleEnumInfo`1.Remotion#ExtensibleEnums#IExtensibleEnumInfo#Value">
            <inheritdoc cref="P:Remotion.ExtensibleEnums.IExtensibleEnumInfo.Value"/>
        </member>
        <member name="P:Remotion.ExtensibleEnums.ExtensibleEnumInfo`1.DefiningMethod">
            <summary>
            Gets the method defining the <see cref="P:Remotion.ExtensibleEnums.ExtensibleEnumInfo`1.Value"/> described by this instance.
            </summary>
            <value>The defining method of the <see cref="P:Remotion.ExtensibleEnums.ExtensibleEnumInfo`1.Value"/>.</value>
        </member>
        <member name="P:Remotion.ExtensibleEnums.ExtensibleEnumInfo`1.ResourceManager">
            <summary>
            Gets the resource manager associated with the <see cref="P:Remotion.ExtensibleEnums.ExtensibleEnumInfo`1.DefiningMethod"/> of the <see cref="P:Remotion.ExtensibleEnums.ExtensibleEnumInfo`1.Value"/> described by this instance.
            </summary>
            <value>The resource manager of this <see cref="P:Remotion.ExtensibleEnums.ExtensibleEnumInfo`1.Value"/>.</value>
        </member>
        <member name="P:Remotion.ExtensibleEnums.ExtensibleEnumInfo`1.PositionalKey">
            <summary>
            Gets the positional key associated with the <see cref="P:Remotion.ExtensibleEnums.ExtensibleEnumInfo`1.Value"/>. The positional key determines the position of the <see cref="P:Remotion.ExtensibleEnums.ExtensibleEnumInfo`1.Value"/>
            in the list of all values of the extensible enum type.
            </summary>
            <value>The positional key.</value>
        </member>
        <member name="T:Remotion.ExtensibleEnums.ExtensibleEnumPositionAttribute">
            <summary>
            Apply to an extension method defining an extensible enum value to specify the position of that value in the list of all values of that
            extensible enum type.
            </summary>
        </member>
        <member name="M:Remotion.ExtensibleEnums.ExtensibleEnumPositionAttribute.#ctor(System.Double)">
            <summary>
            Initializes a new instance of the <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnumPositionAttribute"/> attribute.
            </summary>
            <param name="positionalKey">The positional key to assign the extensible enum value. The default is 0.0. Values with greater keys occur
            after values with lower keys in the list of all values of the corresponding extensible enum type.</param>
        </member>
        <member name="P:Remotion.ExtensibleEnums.ExtensibleEnumPositionAttribute.PositionalKey">
            <summary>
            Gets the positional key of the extensible enum value. Values with greater keys occur
            after values with lower keys in the list of all values of the corresponding extensible enum type.
            </summary>
            <value>The positional key.</value>
        </member>
        <member name="T:Remotion.ExtensibleEnums.ExtensibleEnumUtility">
            <summary>
            Provides utility functionality for extensible enums.
            </summary>
            <threadsafety static="true" instance="true" />
        </member>
        <member name="M:Remotion.ExtensibleEnums.ExtensibleEnumUtility.IsExtensibleEnumType(System.Type)">
            <summary>
            Determines whether the specified type is an <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnum`1"/> type.
            </summary>
            <param name="type">The type to be checked.</param>
            <returns>
            	<see langword="true"/> if the specified type is an extensible enum type; otherwise, <see langword="false"/>.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> parameter is <see langword="null"/>.</exception>
            <remarks>
            For performance reasons, this method only checks if the <paramref name="type"/> implements <see cref="T:Remotion.ExtensibleEnums.IExtensibleEnum"/>, it does not
            check whether the type is derived from <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnum`1"/>. The <see cref="M:Remotion.ExtensibleEnums.ExtensibleEnumUtility.GetDefinition(System.Type)"/> method, however, will throw
            an exception when used with a type not derived from <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnum`1"/>.
            </remarks>
        </member>
        <member name="M:Remotion.ExtensibleEnums.ExtensibleEnumUtility.IsExtensibleEnumType(Remotion.Reflection.ITypeInformation)">
            <summary>
            Determines whether the specified type is an <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnum`1"/> type.
            </summary>
            <param name="type">The type to be checked.</param>
            <returns>
              <see langword="true"/> if the specified type is an extensible enum type; otherwise, <see langword="false"/>.
            </returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="type"/> parameter is <see langword="null"/>.</exception>
            <remarks>
            For performance reasons, this method only checks if the <paramref name="type"/> implements <see cref="T:Remotion.ExtensibleEnums.IExtensibleEnum"/>, it does not
            check whether the type is derived from <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnum`1"/>. The <see cref="M:Remotion.ExtensibleEnums.ExtensibleEnumUtility.GetDefinition(System.Type)"/> method, however, will throw
            an exception when used with a type not derived from <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnum`1"/>.
            </remarks>
        </member>
        <member name="M:Remotion.ExtensibleEnums.ExtensibleEnumUtility.GetDefinition(System.Type)">
            <summary>
            Gets the <see cref="T:Remotion.ExtensibleEnums.IExtensibleEnumDefinition"/> for the given <paramref name="extensibleEnumType"/>.
            </summary>
            <param name="extensibleEnumType">The extensible enum type to get a <see cref="T:Remotion.ExtensibleEnums.IExtensibleEnumDefinition"/> for.</param>
            <returns>An instance of <see cref="T:Remotion.ExtensibleEnums.IExtensibleEnumDefinition"/> describing the enum type.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="extensibleEnumType"/> parameter is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="extensibleEnumType"/> is not derived from <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnum`1"/>.</exception>
        </member>
        <member name="T:Remotion.ExtensibleEnums.Infrastructure.ExtensibleEnumInfoComparer`1">
            <summary>
            Compares two <see cref="T:Remotion.ExtensibleEnums.IExtensibleEnumInfo"/> instances based on the <see cref="P:Remotion.ExtensibleEnums.IExtensibleEnum.ID"/> and 
            <see cref="P:Remotion.ExtensibleEnums.IExtensibleEnumInfo.PositionalKey"/>. This class is used by <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnumDefinition`1"/>
            for sorting the values returned by <see cref="M:Remotion.ExtensibleEnums.ExtensibleEnumDefinition`1.GetValueInfos"/>.
            </summary>
            <typeparam name="T">The concrete <see cref="T:Remotion.ExtensibleEnums.IExtensibleEnumInfo"/> implementation.</typeparam>
        </member>
        <member name="T:Remotion.ExtensibleEnums.InvalidExtensibleEnumDefinitionException">
            <summary>
            Thrown when an <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnum`1"/> is not defined correctly.
            </summary>
        </member>
        <member name="T:Remotion.ExtensibleEnums.ExtensibleEnum`1">
            <summary>
            Base class for extensible enums. Create extensible enums by deriving a class representing the enumeration
            from <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnum`1"/> and define extension methods on <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnumDefinition`1"/>
            to define the values of the enumeration. Each value is uniquely identified by the <see cref="P:Remotion.ExtensibleEnums.ExtensibleEnum`1.ID"/> string
            passed to the <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnum`1"/> constructor. Value comparisons act solely based on this identifier.
            </summary>
            <remarks>
            Instances of this class should be immutable, i.e. they should not change once initialized. This is due to their value
            semantics (a value retrieved from a cache should not be distinguishable from a value freshly created by an extension method call) and
            leads to inherent thread-safety.
            </remarks>
            <threadsafety static="true" instance="true"/>
        </member>
        <member name="T:Remotion.ExtensibleEnums.IExtensibleEnum">
            <summary>
            Provides a non-generic interface for the <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnum`1"/> class.
            </summary>
            <remarks>
            Do not implement this interface yourself, use it only when working with extensible enums in a reflective context, e.g. via the 
            <see cref="T:Remotion.ExtensibleEnums.Infrastructure.ExtensibleEnumDefinitionCache"/> class.
            </remarks>
        </member>
        <member name="M:Remotion.ExtensibleEnums.IExtensibleEnum.GetEnumType">
            <summary>
            Gets the type of the extensible enum this value belongs to.
            </summary>
        </member>
        <member name="M:Remotion.ExtensibleEnums.IExtensibleEnum.GetLocalizedName">
            <summary>
            Gets the localized name of the value represented by this instance by using the <see cref="P:Remotion.ExtensibleEnums.IExtensibleEnumInfo.ResourceManager"/> associated
            with the declaring type of the extension method which defines the value.
            </summary>
            <returns>The localized name of this value.</returns>
        </member>
        <member name="M:Remotion.ExtensibleEnums.IExtensibleEnum.GetValueInfo">
            <summary>
            Gets the <see cref="T:Remotion.ExtensibleEnums.IExtensibleEnumInfo"/> object describing the value represented by this instance.
            </summary>
            <returns>The <see cref="T:Remotion.ExtensibleEnums.IExtensibleEnumInfo"/> for this value.</returns>
        </member>
        <member name="P:Remotion.ExtensibleEnums.IExtensibleEnum.ID">
            <summary>
            Gets the identifier representing this extensible enum value. This is the combination of <see cref="P:Remotion.ExtensibleEnums.IExtensibleEnum.DeclarationSpace"/> and 
            <see cref="P:Remotion.ExtensibleEnums.IExtensibleEnum.ValueName"/>. Use <see cref="M:Remotion.ExtensibleEnums.IExtensibleEnumDefinition.GetValueInfoByID(System.String)"/> to retrieve an <see cref="T:Remotion.ExtensibleEnums.IExtensibleEnum"/>
            value by its <see cref="P:Remotion.ExtensibleEnums.IExtensibleEnum.ID"/>.
            </summary>
            <value>The ID of this value.</value>
        </member>
        <member name="P:Remotion.ExtensibleEnums.IExtensibleEnum.DeclarationSpace">
            <summary>
            Gets a string identifying the declaration space of the identifier of the value being created. This can be a 
            namespace, a type name, or anything else that helps in uniquely identifying the enum value. It is used as a prefix to the <see cref="P:Remotion.ExtensibleEnums.IExtensibleEnum.ID"/>
            of the value. Can be <see langword="null"/>.
            </summary>
            <value>The declaration space of this value, or <see langword="null"/> if the value does not define a declaration space.</value>
        </member>
        <member name="P:Remotion.ExtensibleEnums.IExtensibleEnum.ValueName">
            <summary>
            Gets name of this value. This is a part of the <see cref="P:Remotion.ExtensibleEnums.IExtensibleEnum.ID"/> of this extensible enum value.
            </summary>
            <value>The name of this value.</value>
        </member>
        <member name="F:Remotion.ExtensibleEnums.ExtensibleEnum`1.Values">
            <summary>
            Provides access to all values of this extensible enum type.
            </summary>
            <remarks>Values of the extensible enum type are defined by declaring extension methods against 
            <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnumDefinition`1"/> and can be accessed via this field.</remarks>
        </member>
        <member name="M:Remotion.ExtensibleEnums.ExtensibleEnum`1.op_Equality(Remotion.ExtensibleEnums.ExtensibleEnum{`0},Remotion.ExtensibleEnums.ExtensibleEnum{`0})">
            <summary>
            Implements the equality operator for extensible enum values. The operator is implemented the same way as the <see cref="M:Remotion.ExtensibleEnums.ExtensibleEnum`1.Equals(`0)"/> method.
            </summary>
            <param name="value1">The first value to be compared for equality.</param>
            <param name="value2">The second value to be compared for equality.</param>
            <returns><see langword="true"/> if both <paramref name="value1"/> and <paramref name="value2"/> are <see langword="null"/> or if they both 
            have equal types and <see cref="P:Remotion.ExtensibleEnums.ExtensibleEnum`1.ID"/> values. Otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:Remotion.ExtensibleEnums.ExtensibleEnum`1.op_Inequality(Remotion.ExtensibleEnums.ExtensibleEnum{`0},Remotion.ExtensibleEnums.ExtensibleEnum{`0})">
            <summary>
            Implements the inequality operator for extensible enum values. The operator is implemented the same way as the <see cref="M:Remotion.ExtensibleEnums.ExtensibleEnum`1.Equals(`0)"/> method.
            </summary>
            <param name="value1">The first value to be compared for inequality.</param>
            <param name="value2">The second value to be compared for inequality.</param>
            <returns><see langword="true"/> if only one of <paramref name="value1"/> and <paramref name="value2"/> is <see langword="null"/> or if they 
            have different types or <see cref="P:Remotion.ExtensibleEnums.ExtensibleEnum`1.ID"/> values. Otherwise, <see langword="false"/>.</returns>
        </member>
        <member name="M:Remotion.ExtensibleEnums.ExtensibleEnum`1.#ctor(System.String,System.String)">
            <summary>
            Initializes a new enumeration value with a declaration space and a value name. The actual <see cref="P:Remotion.ExtensibleEnums.ExtensibleEnum`1.ID"/> is formed by combining declaration
            space and value name.
            </summary>
            <param name="declarationSpace">A string identifying the declaration space of the identifier of the value being created. This can be a 
            namespace, a type name, or anything else that helps in uniquely identifying the enum value. It is used as a prefix to the <see cref="P:Remotion.ExtensibleEnums.ExtensibleEnum`1.ID"/>
            of the value. This identifier is used for equality comparisons and hash code calculations. Can be <see langword="null"/>.</param>
            <param name="valueName">The name of the value being created. This identifier is used for equality comparisons
            and hash code calculations.</param>
        </member>
        <member name="M:Remotion.ExtensibleEnums.ExtensibleEnum`1.#ctor(System.String)">
            <summary>
            Initializes a new enumeration value with a given <see cref="P:Remotion.ExtensibleEnums.ExtensibleEnum`1.ID"/>.
            </summary>
            <param name="id">The identifier of the value being created. This identifier is used for equality comparisons
            and hash code calculations.</param>
        </member>
        <member name="M:Remotion.ExtensibleEnums.ExtensibleEnum`1.#ctor(System.Type,System.String)">
            <summary>
            Initializes a new enumeration value with a declaring type and a value name. The actual <see cref="P:Remotion.ExtensibleEnums.ExtensibleEnum`1.ID"/> is formed of the full name of the
            declaring type and the value name.
            </summary>
            <param name="declaringType">The type declaring the extension method defining the enum value. This type's full name is used as a prefix of the 
            identifier of the value being created. This identifier is used for equality comparisons and hash code calculations.</param>
            <param name="valueName">The name of the value being created. This identifier is used for equality comparisons
            and hash code calculations.</param>
        </member>
        <member name="M:Remotion.ExtensibleEnums.ExtensibleEnum`1.#ctor(System.Reflection.MethodBase)">
            <summary>
            Initializes a new enumeration value, automatically setting its <see cref="P:Remotion.ExtensibleEnums.ExtensibleEnum`1.ID"/> using the extension method defining the value.
            </summary>
            <param name="currentMethod">The extension method defining the enum value, use <see cref="M:System.Reflection.MethodBase.GetCurrentMethod"/> to retrieve the value
            to pass for this parameter. The method's full name is used as the identifier of the value being created. This identifier is used for 
            equality comparisons and hash code calculations.</param>
        </member>
        <member name="M:Remotion.ExtensibleEnums.ExtensibleEnum`1.GetLocalizedName">
            <summary>
            Gets the localized name of the value represented by this instance by using the <see cref="P:Remotion.ExtensibleEnums.ExtensibleEnumInfo`1.ResourceManager"/> associated
            with the declaring type of the extension method which defines the value.
            </summary>
            <returns>The localized name of this value.</returns>
        </member>
        <member name="M:Remotion.ExtensibleEnums.ExtensibleEnum`1.GetValueInfo">
            <summary>
            Gets the <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnumInfo`1"/> object describing the value represented by this instance.
            </summary>
            <returns>The <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnumInfo`1"/> for this value.</returns>
        </member>
        <member name="M:Remotion.ExtensibleEnums.ExtensibleEnum`1.GetEnumType">
            <summary>
            Gets the type of the extensible enum this value belongs to.
            </summary>
        </member>
        <member name="M:Remotion.ExtensibleEnums.ExtensibleEnum`1.Equals(`0)">
            <summary>
            Determines whether the specified <typeparamref name="T"/> value is equal to this instance. Equality is
            determined by comparing the <see cref="P:Remotion.ExtensibleEnums.ExtensibleEnum`1.ID"/> and type of the values for equality.
            </summary>
            <param name="obj">The <typeparamref name="T"/> value to compare with this instance.</param>
            <returns>
            	<see langword="true"/> if the specified <typeparamref name="T"/> value is an extensible enum value of the same
            	type and with an equal <see cref="P:Remotion.ExtensibleEnums.ExtensibleEnum`1.ID"/> as this instance; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:Remotion.ExtensibleEnums.ExtensibleEnum`1.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"/> is equal to this instance. Equality is
            determined by comparing the <see cref="P:Remotion.ExtensibleEnums.ExtensibleEnum`1.ID"/> and type of the values for equality.
            </summary>
            <param name="obj">The <see cref="T:System.Object"/> to compare with this instance.</param>
            <returns>
            	<see langword="true"/> if the specified <see cref="T:System.Object"/> is an extensible enum value of the same
            	type and with an equal <see cref="P:Remotion.ExtensibleEnums.ExtensibleEnum`1.ID"/> as this instance; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:Remotion.ExtensibleEnums.ExtensibleEnum`1.GetHashCode">
            <inheritdoc />
        </member>
        <member name="M:Remotion.ExtensibleEnums.ExtensibleEnum`1.ToString">
            <summary>
            Returns a <see cref="T:System.String"/> that represents this <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnum`1"/> value. The string returned by this method is meant
            to be read, not parsed. Use <see cref="P:Remotion.ExtensibleEnums.ExtensibleEnum`1.ID"/> to get a string that can be used to get back to the actual value. Use 
            <see cref="M:Remotion.ExtensibleEnums.ExtensibleEnum`1.GetLocalizedName"/> to get a localized name of the value.
            </summary>
            <returns>
            A <see cref="T:System.String"/> that represents this <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnum`1"/> value.
            </returns>
        </member>
        <member name="P:Remotion.ExtensibleEnums.ExtensibleEnum`1.ID">
            <summary>
            Gets the full identifier representing this extensible enum value. This is the combination of <see cref="P:Remotion.ExtensibleEnums.ExtensibleEnum`1.DeclarationSpace"/> and 
            <see cref="P:Remotion.ExtensibleEnums.ExtensibleEnum`1.ValueName"/>. Use <see cref="M:Remotion.ExtensibleEnums.ExtensibleEnumDefinition`1.GetValueInfoByID(System.String)"/> to retrieve an <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnum`1"/>
            value by its <see cref="P:Remotion.ExtensibleEnums.ExtensibleEnum`1.ID"/>.
            </summary>
            <value>The ID of this value. Once an <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnum`1"/> instance is constructed, this value is guaranteed to never change.</value>
        </member>
        <member name="P:Remotion.ExtensibleEnums.ExtensibleEnum`1.DeclarationSpace">
            <summary>
            Gets a string identifying the declaration space of the identifier of the value being created. This can be a 
            namespace, a type name, or anything else that helps in uniquely identifying the enum value. It is used as a prefix to the <see cref="P:Remotion.ExtensibleEnums.ExtensibleEnum`1.ID"/>
            of the value. Can be <see langword="null"/>.
            </summary>
            <value>The declaration space of this value, or <see langword="null"/> if the value does not define a declaration space.
            Once an <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnum`1"/> instance is constructed, this value is guaranteed to never change.</value>
        </member>
        <member name="P:Remotion.ExtensibleEnums.ExtensibleEnum`1.ValueName">
            <summary>
            Gets name of this value. This is a part of the <see cref="P:Remotion.ExtensibleEnums.ExtensibleEnum`1.ID"/> of this extensible enum value.
            </summary>
            <value>The name of this value. Once an <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnum`1"/> instance is constructed, this value is guaranteed to never change.</value>
        </member>
        <member name="T:Remotion.ExtensibleEnums.Infrastructure.ExtensibleEnumValueDiscoveryService">
            <summary>
            Implements <see cref="T:Remotion.ExtensibleEnums.Infrastructure.IExtensibleEnumValueDiscoveryService"/> by discovering and invoking extension methods defining extensible enum values
            via reflection and <see cref="T:System.ComponentModel.Design.ITypeDiscoveryService"/>.
            </summary>
        </member>
        <member name="T:Remotion.ExtensibleEnums.Infrastructure.IExtensibleEnumValueDiscoveryService">
            <summary>
            Provides a common interface for the discovery of extensible enum values. This interface is used by <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnumDefinition`1"/>.
            </summary>
        </member>
        <member name="T:Remotion.ExtensibleEnums.ExtensibleEnumDefinition`1">
            <summary>
            Provides discovery services for extensible enum values. Extensible enum implementations hold
            hold an instance of this class in the <see cref="F:Remotion.ExtensibleEnums.ExtensibleEnum`1.Values"/> class which represents
            the enumeration. The values of the enumeration should be defined as extension methods for <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnumDefinition`1"/>,
            where <typeparamref name="T"/> is the <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnum`1"/> subclass.
            </summary>
            <typeparam name="T">The subclass of <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnum`1"/> that represents the enumeration.</typeparam>
            <threadsafety static="true" instance="true"/>
        </member>
        <member name="T:Remotion.ExtensibleEnums.IExtensibleEnumDefinition">
            <summary>
            Provides a non-generic interface for the <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnumDefinition`1"/> class.
            </summary>
            <remarks>
            Do not implement this interface yourself, use it only when working with extensible enums in a reflective context, e.g. via the 
            <see cref="T:Remotion.ExtensibleEnums.Infrastructure.ExtensibleEnumDefinitionCache"/> class.
            </remarks>
        </member>
        <member name="M:Remotion.ExtensibleEnums.IExtensibleEnumDefinition.GetEnumType">
            <summary>
            Gets the extensible enum type described by this <see cref="T:Remotion.ExtensibleEnums.IExtensibleEnumDefinition"/>.
            </summary>
        </member>
        <member name="M:Remotion.ExtensibleEnums.IExtensibleEnumDefinition.IsDefined(System.String)">
            <summary>
            Determines whether the extensible enum type defines a value with the specified <paramref name="id"/>.
            </summary>
            <param name="id">The id to be retrieved.</param>
            <returns>
            	<see langword="true" /> if a value with the specified ID is defined; otherwise, <see langword="false" />.
            </returns>
        </member>
        <member name="M:Remotion.ExtensibleEnums.IExtensibleEnumDefinition.IsDefined(Remotion.ExtensibleEnums.IExtensibleEnum)">
            <summary>
            Determines whether the given value is a valid instance of the extensible enum type described by this <see cref="T:Remotion.ExtensibleEnums.IExtensibleEnumDefinition"/>.
            This includes checking whether the value's <see cref="P:Remotion.ExtensibleEnums.IExtensibleEnum.ID"/> is defined.
            </summary>
            <param name="value">The value to be checked.</param>
            <returns>
            	<see langword="true"/> if the value is defined; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="M:Remotion.ExtensibleEnums.IExtensibleEnumDefinition.GetValueInfos">
            <summary>
            Gets <see cref="T:Remotion.ExtensibleEnums.IExtensibleEnumInfo"/> objects describing the values defined by the extensible enum type.
            </summary>
            <returns>A <see cref="T:System.Collections.ObjectModel.ReadOnlyCollection`1"/> holding the <see cref="T:Remotion.ExtensibleEnums.IExtensibleEnumInfo"/> objects describing the values for the 
            extensible enum type.</returns>
            <remarks>
            By default, the values are retrieved by scanning all types found by <see cref="M:Remotion.Reflection.TypeDiscovery.ContextAwareTypeDiscoveryUtility.GetTypeDiscoveryService"/>
            and discovering the extension methods defining values via <see cref="T:Remotion.ExtensibleEnums.Infrastructure.ExtensibleEnumValueDiscoveryService"/>.
            </remarks>
        </member>
        <member name="M:Remotion.ExtensibleEnums.IExtensibleEnumDefinition.GetValueInfoByID(System.String)">
            <summary>
            Gets an <see cref="T:Remotion.ExtensibleEnums.IExtensibleEnumInfo"/> object describing the enum value identified by <paramref name="id"/>, throwing an exception if the 
            value cannot be found.
            </summary>
            <param name="id">The identifier of the enum value to return.</param>
            <returns>An <see cref="T:Remotion.ExtensibleEnums.IExtensibleEnumInfo"/> describing the enum value identified by <paramref name="id"/>.</returns>
            <exception cref="T:System.Collections.Generic.KeyNotFoundException">No enum value with the given <paramref name="id"/> exists.</exception>
        </member>
        <member name="M:Remotion.ExtensibleEnums.IExtensibleEnumDefinition.TryGetValueInfoByID(System.String,Remotion.ExtensibleEnums.IExtensibleEnumInfo@)">
            <summary>
            Gets an <see cref="T:Remotion.ExtensibleEnums.IExtensibleEnumInfo"/> object describing the enum value identified by <paramref name="id"/>, returning a boolean value 
            indicating whether such a value could be found.
            </summary>
            <param name="id">The identifier of the enum value to return.</param>
            <param name="value">The <see cref="T:Remotion.ExtensibleEnums.IExtensibleEnumInfo"/> describing the enum value identified by <paramref name="id"/>, or 
            <see langword="null"/> if no such value exists.</param>
            <returns>
            <see langword="true"/> if a value with the given <paramref name="id"/> could be found; <see langword="false"/> otherwise.
            </returns>
        </member>
        <member name="M:Remotion.ExtensibleEnums.IExtensibleEnumDefinition.GetCustomAttributes(System.Type)">
            <summary>
            Gets the custom attributes defined by the types declaring the extension methods defining the enum values.
            </summary>
            <param name="attributeType">The attribute type to look for. Attributes inheriting from this type are also returned.</param>
            <returns>The custom attributes defined by the types declaring the extension methods defining the enum values.</returns>
        </member>
        <member name="M:Remotion.ExtensibleEnums.IExtensibleEnumDefinition.GetCustomAttributes``1">
            <summary>
            Gets the custom attributes defined by the types declaring the extension methods defining the enum values.
            </summary>
            <typeparam name="TAttribute">The attribute type to look for. Attributes inheriting from this type are also returned.</typeparam>
            <returns>The custom attributes defined by the types declaring the extension methods defining the enum values.</returns>
        </member>
        <member name="M:Remotion.ExtensibleEnums.ExtensibleEnumDefinition`1.#ctor(Remotion.ExtensibleEnums.Infrastructure.IExtensibleEnumValueDiscoveryService)">
            <summary>
            Initializes a new instance of the <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnumDefinition`1"/> class.
            </summary>
            <param name="valueDiscoveryService">An implementation of <see cref="T:Remotion.ExtensibleEnums.Infrastructure.IExtensibleEnumValueDiscoveryService"/> used to discover the values
            for this <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnumDefinition`1"/>.</param>
        </member>
        <member name="M:Remotion.ExtensibleEnums.ExtensibleEnumDefinition`1.GetEnumType">
            <inheritdoc />
        </member>
        <member name="M:Remotion.ExtensibleEnums.ExtensibleEnumDefinition`1.IsDefined(System.String)">
            <inheritdoc />
        </member>
        <member name="M:Remotion.ExtensibleEnums.ExtensibleEnumDefinition`1.IsDefined(Remotion.ExtensibleEnums.IExtensibleEnum)">
            <inheritdoc />
        </member>
        <member name="M:Remotion.ExtensibleEnums.ExtensibleEnumDefinition`1.GetValueInfos">
            <summary>
            Gets <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnumInfo`1"/> objects describing the values defined by the extensible enum type.
            </summary>
            <returns>A <see cref="T:System.Collections.ObjectModel.ReadOnlyCollection`1"/> holding the <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnumInfo`1"/> objects describing the values for the 
            extensible enum type.</returns>
        </member>
        <member name="M:Remotion.ExtensibleEnums.ExtensibleEnumDefinition`1.GetValueInfoByID(System.String)">
            <summary>
            Gets an <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnumInfo`1"/> object describing the enum value identified by <paramref name="id"/>, throwing an exception if the 
            value cannot be found.
            </summary>
            <param name="id">The identifier of the enum value to return.</param>
            <returns>An <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnumInfo`1"/> describing the enum value identified by <paramref name="id"/>.</returns>
            <exception cref="T:System.Collections.Generic.KeyNotFoundException">No enum value with the given <paramref name="id"/> exists.</exception>
        </member>
        <member name="M:Remotion.ExtensibleEnums.ExtensibleEnumDefinition`1.TryGetValueInfoByID(System.String,Remotion.ExtensibleEnums.ExtensibleEnumInfo{`0}@)">
            <summary>
            Gets an <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnumInfo`1"/> object describing the enum value identified by <paramref name="id"/>, returning a boolean value 
            indicating whether such a value could be found.
            </summary>
            <param name="id">The identifier of the enum value to return.</param>
            <param name="value">The <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnumInfo`1"/> describing the enum value identified by <paramref name="id"/>, or 
            <see langword="null"/> if no such value exists.</param>
            <returns>
            <see langword="true"/> if a value with the given <paramref name="id"/> could be found; <see langword="false"/> otherwise.
            </returns>
        </member>
        <member name="M:Remotion.ExtensibleEnums.ExtensibleEnumDefinition`1.GetCustomAttributes(System.Type)">
            <inheritdoc />
        </member>
        <member name="M:Remotion.ExtensibleEnums.ExtensibleEnumDefinition`1.GetCustomAttributes``1">
            <inheritdoc cref="M:Remotion.ExtensibleEnums.IExtensibleEnumDefinition.GetCustomAttributes``1"/>
        </member>
        <member name="T:Remotion.ExtensibleEnums.Infrastructure.ExtensibleEnumDefinitionCache">
            <summary>
            Caches <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnumDefinition`1"/> instances for non-generic, reflective access.
            </summary>
            <threadsafety static="true" instance="true"/>
        </member>
        <member name="F:Remotion.ExtensibleEnums.Infrastructure.ExtensibleEnumDefinitionCache.Instance">
            <summary>
            Returns the single instance of the <see cref="T:Remotion.ExtensibleEnums.Infrastructure.ExtensibleEnumDefinitionCache"/> class.
            </summary>
        </member>
        <member name="M:Remotion.ExtensibleEnums.Infrastructure.ExtensibleEnumDefinitionCache.GetDefinition(System.Type)">
            <summary>
            Gets the <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnumDefinition`1"/> for the given <paramref name="extensibleEnumType"/> from the cache creating a new
            one if necessary. If a new instance is created, the <see cref="P:Remotion.ExtensibleEnums.Infrastructure.ExtensibleEnumDefinitionCache.ValueDiscoveryService"/> is used to discover the values of the enum type.
            </summary>
            <param name="extensibleEnumType">The type of the extensible enum for which to retrieve an <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnumDefinition`1"/>.</param>
            <returns>The <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnumDefinition`1"/> for the given type.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="extensibleEnumType"/> parameter is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException">The <paramref name="extensibleEnumType"/> parameter is not derived from 
            <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnumInfo`1"/>.</exception>
        </member>
        <member name="P:Remotion.ExtensibleEnums.Infrastructure.ExtensibleEnumDefinitionCache.ValueDiscoveryService">
            <summary>
            Gets the <see cref="T:Remotion.ExtensibleEnums.Infrastructure.IExtensibleEnumValueDiscoveryService"/> used to discover values for <see cref="T:Remotion.ExtensibleEnums.ExtensibleEnumDefinition`1"/> instances
            created by this <see cref="T:Remotion.ExtensibleEnums.Infrastructure.ExtensibleEnumDefinitionCache"/>.
            </summary>
            <value>The value discovery service.</value>
        </member>
        <member name="T:Remotion.FunctionalProgramming.Maybe">
            <summary>
            Provides non-generic helper methods for the <see cref="T:Remotion.FunctionalProgramming.Maybe`1"/> type.
            </summary>
        </member>
        <member name="M:Remotion.FunctionalProgramming.Maybe.ForValue``1(``0)">
            <summary>
            Creates a <see cref="T:Remotion.FunctionalProgramming.Maybe`1"/> instance for the given value, which can be <see langword="null"/>.
            </summary>
            <typeparam name="T">The type of the <paramref name="valueOrNull"/>.</typeparam>
            <param name="valueOrNull">The value. Can be <see langword="null"/>, in which case <see cref="F:Remotion.FunctionalProgramming.Maybe`1.Nothing"/> is returned.</param>
            <returns><see cref="F:Remotion.FunctionalProgramming.Maybe`1.Nothing"/> if <paramref name="valueOrNull"/> is <see langword="null"/>; otherwise an instance of 
            <see cref="T:Remotion.FunctionalProgramming.Maybe`1"/> that encapsulates the given <paramref name="valueOrNull"/>.</returns>
        </member>
        <member name="M:Remotion.FunctionalProgramming.Maybe.ForValue``1(System.Nullable{``0})">
            <summary>
            Creates a <see cref="T:Remotion.FunctionalProgramming.Maybe`1"/> instance for the given <paramref name="nullableValue"/>, unwrapping a nullable value type.
            </summary>
            <typeparam name="T">The underlying type of the <paramref name="nullableValue"/>.</typeparam>
            <param name="nullableValue">
              The nullable value. Can be <see langword="null"/>, in which case <see cref="F:Remotion.FunctionalProgramming.Maybe`1.Nothing"/> is returned.
            </param>
            <returns><see cref="F:Remotion.FunctionalProgramming.Maybe`1.Nothing"/> if <paramref name="nullableValue"/> is <see langword="null"/>; otherwise an instance of 
            <see cref="T:Remotion.FunctionalProgramming.Maybe`1"/> that encapsulates the underlying value of <paramref name="nullableValue"/>.</returns>
        </member>
        <member name="M:Remotion.FunctionalProgramming.Maybe.ForCondition``1(System.Boolean,``0)">
            <summary>
            Creates a <see cref="T:Remotion.FunctionalProgramming.Maybe`1"/> instance for the given value, which can be <see langword="null"/>, if a boolean condition evaluates to
            <see langword="true"/>. If it evaluates to <see langword="false"/>, <see cref="F:Remotion.FunctionalProgramming.Maybe`1.Nothing"/> is returned.
            </summary>
            <typeparam name="T">The type of the <paramref name="valueIfTrue"/>.</typeparam>
            <param name="condition">The condition to check. If <see langword="false"/>, <see cref="F:Remotion.FunctionalProgramming.Maybe`1.Nothing"/> is returned.</param>
            <param name="valueIfTrue">The value. Can be <see langword="null"/>, in which case <see cref="F:Remotion.FunctionalProgramming.Maybe`1.Nothing"/> is returned.</param>
            <returns>
            	<see cref="F:Remotion.FunctionalProgramming.Maybe`1.Nothing"/> if <paramref name="valueIfTrue"/> is <see langword="null"/> or <paramref name="condition"/> is 
            	<see langword="false"/>; otherwise an instance of <see cref="T:Remotion.FunctionalProgramming.Maybe`1"/> that encapsulates the given <paramref name="valueIfTrue"/>.
            </returns>
        </member>
        <member name="M:Remotion.FunctionalProgramming.Maybe.ForCondition``1(System.Boolean,System.Nullable{``0})">
            <summary>
            Creates a <see cref="T:Remotion.FunctionalProgramming.Maybe`1"/> instance for the given value, unwrapping a nullable value type, if a boolean condition evaluates to
            <see langword="true"/>. If it evaluates to <see langword="false"/>, <see cref="F:Remotion.FunctionalProgramming.Maybe`1.Nothing"/> is returned.
            </summary>
            <typeparam name="T">The underlying type of the <paramref name="nullableValueIfTrue"/>.</typeparam>
            <param name="condition">The condition to check. If <see langword="false"/>, <see cref="F:Remotion.FunctionalProgramming.Maybe`1.Nothing"/> is returned.</param>
            <param name="nullableValueIfTrue">
              The nullable value. Can be <see langword="null"/>, in which case <see cref="F:Remotion.FunctionalProgramming.Maybe`1.Nothing"/> is returned.
              </param>
            <returns>
            	<see cref="F:Remotion.FunctionalProgramming.Maybe`1.Nothing"/> if <paramref name="nullableValueIfTrue"/> is <see langword="null"/> or <paramref name="condition"/> is 
            	<see langword="false"/>; otherwise an instance of <see cref="T:Remotion.FunctionalProgramming.Maybe`1"/> that encapsulates the underlying value of 
            	<paramref name="nullableValueIfTrue"/>.
            </returns>
        </member>
        <member name="M:Remotion.FunctionalProgramming.Maybe.EnumerateValues``1(System.Collections.Generic.IEnumerable{Remotion.FunctionalProgramming.Maybe{``0}})">
            <summary>
            Enumerates the values of a number of <see cref="T:Remotion.FunctionalProgramming.Maybe`1"/> instances. <see cref="T:Remotion.FunctionalProgramming.Maybe`1"/> instances that have no values are ignored.
            </summary>
            <typeparam name="T">The value type of the <see cref="T:Remotion.FunctionalProgramming.Maybe`1"/> values.</typeparam>
            <param name="maybeValues">The maybe instances to enumerate the values of. <see cref="T:Remotion.FunctionalProgramming.Maybe`1"/> instances that have no values are ignored.</param>
            <returns>An enumerable sequence containing all non-<see langword="null"/> values</returns>
        </member>
        <member name="M:Remotion.FunctionalProgramming.Maybe.EnumerateValues``1(Remotion.FunctionalProgramming.Maybe{``0}[])">
            <summary>
            Enumerates the values of a number of <see cref="T:Remotion.FunctionalProgramming.Maybe`1"/> instances. <see cref="T:Remotion.FunctionalProgramming.Maybe`1"/> instances that have no values are ignored.
            </summary>
            <typeparam name="T">The value type of the <see cref="T:Remotion.FunctionalProgramming.Maybe`1"/> values.</typeparam>
            <param name="maybeValues">The maybe instances to enumerate the values of. <see cref="T:Remotion.FunctionalProgramming.Maybe`1"/> instances that have no values are ignored.</param>
            <returns>An enumerable sequence containing all non-<see langword="null"/> values</returns>
        </member>
        <member name="T:Remotion.FunctionalProgramming.Maybe`1">
            <summary>
            Encapsulates a value that may be <see langword="null" />, providing helpful methods to avoid <see langword="null" /> checks.
            </summary>
        </member>
        <member name="M:Remotion.FunctionalProgramming.Maybe`1.#ctor(`0)">
            <summary>
            Initializes a new instance of the <see cref="T:Remotion.FunctionalProgramming.Maybe`1"/> struct.
            </summary>
            <param name="value">
            The value. If the value is <see langword="null"/>, the created instance will compare equal to <see cref="F:Remotion.FunctionalProgramming.Maybe`1.Nothing"/>.
            </param>
        </member>
        <member name="M:Remotion.FunctionalProgramming.Maybe`1.ToString">
            <summary>
            Provides a human-readable representation of this instance.
            </summary>
            <returns>
            A human-readable representation of this instance.
            </returns>
        </member>
        <member name="M:Remotion.FunctionalProgramming.Maybe`1.ValueOrDefault">
            <summary>
            Gets the value held by this instance, or the default value of <typeparamref name="T"/> if this instance does not have a value.
            </summary>
            <returns>The value held by this instance, or the default value of <typeparamref name="T"/> if this instance does not have a value.</returns>
        </member>
        <member name="M:Remotion.FunctionalProgramming.Maybe`1.ValueOrDefault(`0)">
            <summary>
            Gets the value held by this instance, or the <paramref name="defaultValue"/> if this instance does not have a value.
            </summary>
            <param name="defaultValue">The default value returned if this instance does not have a value.</param>
            <returns>The value held by this instance, or the <paramref name="defaultValue"/> if this instance does not have a value.</returns>
        </member>
        <member name="M:Remotion.FunctionalProgramming.Maybe`1.Value">
            <summary>
            Gets the value held by this instance. An exception is thrown if this instance does not have a value.
            </summary>
            <returns>The value held by this instance. An exception is thrown if this instance does not have a value.</returns>
            <exception cref="T:System.InvalidOperationException">The <see cref="P:Remotion.FunctionalProgramming.Maybe`1.HasValue"/> property is <see langword="false"/>.</exception>
        </member>
        <member name="M:Remotion.FunctionalProgramming.Maybe`1.Do(System.Action{`0})">
            <summary>
            Executes the specified action if this instance has a value. Otherwise, the action is not performed.
            </summary>
            <param name="action">The action to execute.</param>
            <returns>This instance.</returns>
        </member>
        <member name="M:Remotion.FunctionalProgramming.Maybe`1.Do(System.Action{`0},System.Action)">
            <summary>
            Executes the specified action if this instance has a value. Otherwise, a different action is performed.
            </summary>
            <param name="action">The action to execute.</param>
            <param name="otherwise">The action to execute if this instance doesn't have a value.</param>
            <returns>This instance.</returns>
        </member>
        <member name="M:Remotion.FunctionalProgramming.Maybe`1.OtherwiseDo(System.Action)">
            <summary>
            Executes the specified action if this instance doesn't have a value. If it does, the action is not performed.
            </summary>
            <param name="action">The action to execute.</param>
            <returns>This instance.</returns>
        </member>
        <member name="M:Remotion.FunctionalProgramming.Maybe`1.Select``1(System.Func{`0,``0})">
            <summary>
            Selects another value from this instance. If this instance does not have a value, the selected value is <see cref="F:Remotion.FunctionalProgramming.Maybe`1.Nothing"/>.
            Otherwise, the selected value is retrieved via a selector function.
            </summary>
            <typeparam name="TR">The type of the value to be selected.</typeparam>
            <param name="selector">The selector function. This function is only executed if this instance has a value.</param>
            <returns><see cref="F:Remotion.FunctionalProgramming.Maybe`1.Nothing"/> if this instance has no value or <paramref name="selector"/> returns <see langword="null"/>; 
            otherwise, a new <see cref="T:Remotion.FunctionalProgramming.Maybe`1"/> instance holding the value returned by <paramref name="selector"/>.
            </returns>
        </member>
        <member name="M:Remotion.FunctionalProgramming.Maybe`1.SelectMany``2(System.Func{`0,Remotion.FunctionalProgramming.Maybe{``0}},System.Func{`0,``0,``1})">
            <summary>
            Combines a <see cref="T:Remotion.FunctionalProgramming.Maybe`1"/> value with another <see cref="T:Remotion.FunctionalProgramming.Maybe`1"/> value, returning <see cref="F:Remotion.FunctionalProgramming.Maybe`1.Nothing"/> unless both
            <see cref="T:Remotion.FunctionalProgramming.Maybe`1"/> instances have a value.
            </summary>
            <typeparam name="TOther">The type stored by the other maybe instance to combine this instance with.</typeparam>
            <typeparam name="TResult">The type of the combined values.</typeparam>
            <param name="otherMaybeSelector">A selector function that returns the other <see cref="T:Remotion.FunctionalProgramming.Maybe`1"/> instance to combine this instance with. 
            This function is only executed if this instance has a value.</param>
            <param name="resultSelector">A function selecting the resulting value from the value of this instance and the value of the other 
            <see cref="T:Remotion.FunctionalProgramming.Maybe`1"/> instance.</param>
            <returns><see cref="F:Remotion.FunctionalProgramming.Maybe`1.Nothing"/> if this instance does not have a value, <paramref name="otherMaybeSelector"/> returns <see cref="F:Remotion.FunctionalProgramming.Maybe`1.Nothing"/>,
            or <paramref nane="resultSelector"/> returns <see langword="null"/>. Otherwise, the result of <paramref name="resultSelector"/> applied
            to the value held by this instance and the value held by the <see cref="T:Remotion.FunctionalProgramming.Maybe`1"/> instance returned by <paramref name="otherMaybeSelector"/>.
            </returns>
            <remarks>
            This method enables LINQ-style queries with multiple from clauses.
            <example>
            <code>
            var r = from s in Maybe.ForValue (stringValue)
                    from i in Maybe.ForValue (intValue)
                    let j = s.Length + i
                    where j &gt; 100
                    select new { i, s };
            r.Do (tuple =&gt; Console.WriteLine (tuple.i + "/" + tuple.s), () =&gt; Console.WriteLine ("Nothing!"));
            </code>
            </example>
            </remarks>
        </member>
        <member name="M:Remotion.FunctionalProgramming.Maybe`1.Select``1(System.Func{`0,System.Nullable{``0}})">
            <summary>
            Selects a nullable value from this instance. If this instance does not have a value, the selected value is <see cref="F:Remotion.FunctionalProgramming.Maybe`1.Nothing"/>.
            Otherwise, the selected value is retrieved via a selector function.
            </summary>
            <typeparam name="TR">The type of the value to be selected.</typeparam>
            <param name="selector">The selector function. This function is only executed if this instance has a value. Its return value is unwrapped
            into the underlying type.</param>
            <returns><see cref="F:Remotion.FunctionalProgramming.Maybe`1.Nothing"/> if this instance has no value or <paramref name="selector"/> returns <see langword="null"/>; 
            otherwise, a new <see cref="T:Remotion.FunctionalProgramming.Maybe`1"/> instance holding the non-nullable value returned by <paramref name="selector"/>.
            </returns>
        </member>
        <member name="M:Remotion.FunctionalProgramming.Maybe`1.OtherwiseSelect(System.Func{`0})">
            <summary>
            Selects a new value if this instance does not have a value.
            If it already has a value, that value is retained.
            </summary>
            <param name="selector">The selector function. This function is only executed if this instance doesn't have a value.</param>
            <returns>This <see cref="T:Remotion.FunctionalProgramming.Maybe`1"/> instance if it holds a value. Otherwise, a new <see cref="T:Remotion.FunctionalProgramming.Maybe`1"/> instance holding the result of 
            the <paramref name="selector"/> (or <see cref="F:Remotion.FunctionalProgramming.Maybe`1.Nothing"/> if the selector returned <see langword="null"/>).
            </returns>
        </member>
        <member name="M:Remotion.FunctionalProgramming.Maybe`1.Where(System.Func{`0,System.Boolean})">
            <summary>
            Checks the given predicate, returning this instance if the predicate is <see langword="true"/>, or <see cref="F:Remotion.FunctionalProgramming.Maybe`1.Nothing"/> if the predicate is 
            <see langword="false"/>. If this instance does not have a value, <see cref="F:Remotion.FunctionalProgramming.Maybe`1.Nothing"/> is immediately returned and the predicate is not
            evaluated.
            </summary>
            <param name="predicate">The predicate to check. This is only evaluated if this instance has a value.</param>
            <returns><see cref="F:Remotion.FunctionalProgramming.Maybe`1.Nothing"/> if this instance does not have a value or the <paramref name="predicate"/> returns <see langword="false"/>;
            otherwise, this instance.</returns>
        </member>
        <member name="P:Remotion.FunctionalProgramming.Maybe`1.HasValue">
            <summary>
            Gets a value indicating whether this instance has a value.
            </summary>
            <value>
            	<see langword="true"/> if this instance has a value; otherwise, <see langword="false"/>.
            </value>
        </member>
        <member name="T:Remotion.Globalization.ResourceManagerCacheEntry">
            <summary>
            Holds resource manager information cached by <see cref="T:Remotion.Globalization.ResourceManagerResolver`1"/>.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.CodeGeneration.MethodWrapperEmitter">
            <summary>
            Builds the IL code needed to wrap a method call.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.CodeGeneration.MethodReferencingAttribute">
            <summary>
            Defines a base class for attributes that reference a method by declaring type, name, and signature. Cannot be used to reference a closed
            generic method.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.DynamicMethodBasedMethodCallerFactory">
            <summary>
            Factory class for creating <see cref="T:System.Reflection.Emit.DynamicMethod"/>-based wrapper delegates for <see cref="T:System.Reflection.MethodInfo"/> objects.
            </summary>
        </member>
        <member name="M:Remotion.Reflection.DynamicMethodBasedMethodCallerFactory.CreateMethodCallerDelegate(System.Reflection.MethodInfo,System.Type)">
            <summary>
            Creates a <see cref="T:System.Delegate"/> that can be used to invoke the method identified by the <paramref name="methodInfo"/>.
            </summary>
            <param name="methodInfo">The method to wrap.</param>
            <param name="delegateType">
            The <see cref="T:System.Delegate"/> type. The signature must always include the instance-parameter as first parameter even if the 
            <paramref name="methodInfo"/> refers to a static method.
            </param>
            <returns>
            An instance of the <paramref name="delegateType"/> that can be used to invoke the method identified by the <paramref name="methodInfo"/>.
            </returns>
        </member>
        <member name="T:Remotion.Reflection.MethodInfoAdapter">
            <summary>
            Implements the <see cref="T:Remotion.Reflection.IMethodInformation"/> to wrap a <see cref="P:Remotion.Reflection.MethodInfoAdapter.MethodInfo"/> instance.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.MethodResolver">
            <summary>
            Resolves a method from the given parameters.
            </summary>
        </member>
        <member name="M:Remotion.Reflection.MethodResolver.ResolveMethod(System.Type,System.String,System.String)">
            <summary>
            Resolves the method with the given name and signature. Cannot resolve closed generic methods.
            </summary>
            <param name="declaringType">Declaring type of the method to be resolved.</param>
            <param name="name">The simple name of the method to be resolved.</param>
            <param name="signature">The signature string of the method to be resolved. This has the same format as what is produced by the 
            <see cref="M:System.Object.ToString"/> method implementation of <see cref="T:System.Reflection.MethodInfo"/> objects.</param>
            <returns>The resolved method.</returns>
            <exception cref="T:System.MissingMethodException">No matching method could be found.</exception>
            <remarks>
            This mimics the behavior used by Reflection to serialize MethodInfos. It's not performant at all, but it should work reliably.
            </remarks>
        </member>
        <member name="T:Remotion.Reflection.CodeGeneration.DPExtensions.BlockStatement">
            <summary>
            Groups several statements together in a block statement. When the block is emitted, all statements are emitted in the order in which they were
            given to the <see cref="T:Remotion.Reflection.CodeGeneration.DPExtensions.BlockStatement"/>.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.CodeGeneration.DPExtensions.CastClassExpression">
            <summary>
            Expression that emits a <see cref="F:System.Reflection.Emit.OpCodes.Castclass"/> opcode, thus converting another expression to a given target type. The 
            <see cref="F:System.Reflection.Emit.OpCodes.Castclass"/> opcode is emitted without any checks, so this expression must only be used when that opcode is allowed.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.MemberSignatures.MemberSignatureEqualityComparer">
            <summary>
            Compares two members for equality by considering only the signatures, but not the names of the members. This comparer does not support comparing
            <see langword="null" /> values.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.NullMethodInformation">
            <summary>
            Null-object implementation of <see cref="T:Remotion.Reflection.IMethodInformation"/>.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.NullPropertyInformation">
            <summary>
            Null-object implementation of <see cref="T:Remotion.Reflection.IMethodInformation"/>.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.PropertyInfoAdapter">
            <summary>
            Implements the <see cref="T:Remotion.Reflection.IPropertyInformation"/> interface to wrap a <see cref="P:Remotion.Reflection.PropertyInfoAdapter.PropertyInfo"/> instance.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.MemberSignatures.MethodSignatureStringBuilderHelper">
            <summary>
            Provides a common utility class for classes building strings representing the signature of a given <see cref="T:System.Reflection.MemberInfo"/> object.
            </summary>
            <remarks>
            <para>
            For simplicity, this class assumes that type or namespace names cannot contain the character "[". It also assumes that the full name of a type 
            (namespace, enclosing type (if any), and simple type name) is enough to identify a type - assembly information is not encoded. The 1:1 mapping 
            of signature strings to member signatures is only guaranteed for members that adhere to these assumptions.
            </para>
            </remarks>
        </member>
        <member name="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.AssemblyNameSpecification">
            <summary>
            Holds an <see cref="T:System.Reflection.AssemblyName"/> for the <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.NamedRootAssemblyFinder"/> as well as a flag indicating whether to 
            include referenced assemblies.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.CompositeRootAssemblyFinder">
            <summary>
            Composes several <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.IRootAssemblyFinder"/> instances into one, combining all results and eliminating duplicates in the process.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.IRootAssemblyFinder">
            <summary>
            Defines an interface for classes finding the root assemblies for type discovery.
            </summary>
        </member>
        <member name="M:Remotion.Reflection.TypeDiscovery.AssemblyFinding.IRootAssemblyFinder.FindRootAssemblies">
            <summary>
            Finds root assemblies as defined by the concrete implementation. Root assemblies are used by <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.AssemblyFinder"/> as an entry
            point into assembly discovery.
            </summary>
            <returns>An array of <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.RootAssembly"/> instances holding distinct, non-<see langword="null"/> <see cref="T:System.Reflection.Assembly"/> objects
            as well as flags indicating whether to follow the references of the respective assembly or not.</returns>
        </member>
        <member name="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.FilePatternRootAssemblyFinder">
            <summary>
            Finds the root assemblies by looking up and loading files matching the given patterns in a specified directory.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.FilePatternRootAssemblyFinder.FileDescription">
            <summary>
            Holds a file path string as well as a flag indicating whether referenced assemblies should be followed or not. Equality comparisons of
            instances only check the file name, not the flag - this simplifies the algorithm to exclude file names in 
            <see cref="M:Remotion.Reflection.TypeDiscovery.AssemblyFinding.FilePatternRootAssemblyFinder.ConsolidateSpecifications"/>.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.FilePatternSpecification">
            <summary>
            Defines a file pattern for the <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.FilePatternRootAssemblyFinder"/> as well as how to interpret that pattern.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.FilePatternSpecificationKind">
            <summary>
            Defines how a file pattern specification should be interpreted.
            </summary>
        </member>
        <member name="F:Remotion.Reflection.TypeDiscovery.AssemblyFinding.FilePatternSpecificationKind.IncludeNoFollow">
            <summary>
            The files described by the pattern should be included, but referenced assemblies should not be followed.
            </summary>
        </member>
        <member name="F:Remotion.Reflection.TypeDiscovery.AssemblyFinding.FilePatternSpecificationKind.IncludeFollowReferences">
            <summary>
            The files described by the pattern should be included, and their referenced assemblies should be followed.
            </summary>
        </member>
        <member name="F:Remotion.Reflection.TypeDiscovery.AssemblyFinding.FilePatternSpecificationKind.Exclude">
            <summary>
            The files described by the pattern should be excluded. This removes any files previously included, but it does not affect any files
            included by a subsequent specification.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.FileSystemSearchService">
            <summary>
            Implements the <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.IFileSearchService"/> using the <see cref="T:System.IO.Directory"/> class.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.IFileSearchService">
            <summary>
            Provides a common interface for classes allowing to search for files using a search pattern.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.FixedRootAssemblyFinder">
            <summary>
            Implements <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.IRootAssemblyFinder"/> by returning a fixed set of root assemblies.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.NamedRootAssemblyFinder">
            <summary>
            Loads root assemblies by assembly names.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.RootAssembly">
            <summary>
            Identifies a root assembly found by an implementation of <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.IRootAssemblyFinder"/>. This includes the assembly itself as well as a flag
            indicating whether to follow the assembly's references or not.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.TypeDiscovery.AssemblyLoading.IAssemblyLoader">
            <summary>
            Defines an interface for classes that can load assemblies from a file path.
            </summary>
        </member>
        <member name="M:Remotion.Reflection.TypeDiscovery.AssemblyLoading.IAssemblyLoader.TryLoadAssembly(System.String)">
            <summary>
            Tries to load an assembly from the given <paramref name="filePath"/>, returning <see langword="null"/> if the file exists but is no assembly.
            </summary>
            <param name="filePath">The file path to load the assembly from.</param>
            <returns>The loaded assembly, or <see langword="null"/> if the assembly can't be loaded.</returns>
            <exception cref="T:Remotion.Reflection.TypeDiscovery.AssemblyLoading.AssemblyLoaderException">Thrown when the file cannot be found or an unexpected exception occurs while loading it.</exception>
        </member>
        <member name="M:Remotion.Reflection.TypeDiscovery.AssemblyLoading.IAssemblyLoader.TryLoadAssembly(System.Reflection.AssemblyName,System.String)">
            <summary>
            Tries the load an assembly from the given <paramref name="assemblyName"/>, returning <see langword="null"/> if the file exists but is no 
            assembly.
            </summary>
            <param name="assemblyName">The assembly name to load the assembly from.</param>
            <param name="context">Context information to be included with the exception message when the assembly cannot be found or an unexpected 
            exception occurs while loading it.</param>
            <returns>The loaded assembly, or <see langword="null"/> if the assembly can't be loaded.</returns>
            <exception cref="T:Remotion.Reflection.TypeDiscovery.AssemblyLoading.AssemblyLoaderException">Thrown when the assembly cannot be found or an unexpected exception occurs while loading it.</exception>
        </member>
        <member name="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.SearchPathRootAssemblyFinder">
            <summary>
            Finds the root assemblies by looking up and loading all DLL and EXE files in the assembly search path.
            </summary>
        </member>
        <member name="M:Remotion.Reflection.TypeDiscovery.AssemblyFinding.SearchPathRootAssemblyFinder.CreateForCurrentAppDomain(System.Boolean,Remotion.Reflection.TypeDiscovery.AssemblyLoading.IAssemblyLoader)">
            <summary>
            Initializes a new instance of the <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.SearchPathRootAssemblyFinder"/> type to look for assemblies within the current
            <see cref="T:System.AppDomain"/>'s <see cref="P:System.AppDomain.BaseDirectory"/> as well as its <see cref="P:System.AppDomain.RelativeSearchPath"/>
            (and, optionally, dynamic directory).
            </summary>
            <param name="considerDynamicDirectory">Specifies whether to search the <see cref="P:System.AppDomain.DynamicDirectory"/> as well as the base
            directory.</param>
            <param name="assemblyLoader">
            The <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyLoading.IAssemblyLoader"/> to use for loading the root assemblies. This object determines any filtering made on the assemblies
            to be loaded.
            </param>
            <returns>An instance of the <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.SearchPathRootAssemblyFinder"/> type looking for assemblies within the current
            <see cref="T:System.AppDomain"/>'s <see cref="P:System.AppDomain.BaseDirectory"/> as well as its <see cref="P:System.AppDomain.RelativeSearchPath"/>.
            </returns>
        </member>
        <member name="T:Remotion.Reflection.TypeDiscovery.AssemblyLoading.LoadAllAssemblyLoaderFilter">
            <summary>
            Provides an implementation of <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyLoading.IAssemblyLoaderFilter"/> that loads all assemblies.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.TypeDiscovery.AssemblyLoading.IAssemblyLoaderFilter">
            <summary>
            Provides an interface for filtering the assemblies loaded by the <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyLoading.FilteringAssemblyLoader"/>.
            </summary>
            <remarks>The filtering interface provides a two-step model: first, the <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.AssemblyFinder"/> checks whether the assembly name fits the 
            criteria of the filter implementation, then, it checks whether the assembly itself fits the criteria. If the <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyLoading.FilteringAssemblyLoader"/> 
            locates an assembly on disk, it will only load it if the assembly's name passes the first step. After loading, the second step can still reject 
            the assembly based on more detailed investigation.</remarks>
        </member>
        <member name="M:Remotion.Reflection.TypeDiscovery.AssemblyLoading.IAssemblyLoaderFilter.ShouldConsiderAssembly(System.Reflection.AssemblyName)">
            <summary>
            Determines whether the assembly of the given name should be considered for inclusion by the <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyLoading.FilteringAssemblyLoader"/>.
            </summary>
            <param name="assemblyName">The name of the assembly to be checked.</param>
            <returns><see langword="true"/> if the <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.AssemblyFinder"/> should consider this assembly; otherwise <see langword="false"/>.</returns>
            <remarks>This is the first step of a two-step filtering protocol. Assemblies rejected by this method will not be explicitly loaded by the
            <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyLoading.FilteringAssemblyLoader"/>.</remarks>
        </member>
        <member name="M:Remotion.Reflection.TypeDiscovery.AssemblyLoading.IAssemblyLoaderFilter.ShouldIncludeAssembly(System.Reflection.Assembly)">
            <summary>
            Determines whether the given assembly should be included in the list of assemblies returned by the <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyLoading.FilteringAssemblyLoader"/>.
            </summary>
            <param name="assembly">The assembly to be checked.</param>
            <returns><see langword="true"/> if the <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyLoading.FilteringAssemblyLoader"/> should return this assembly; otherwise <see langword="false"/>.</returns>
            <remarks>This is the second step of a two-step filtering protocol. Only assemblies not rejected by <see cref="M:Remotion.Reflection.TypeDiscovery.AssemblyLoading.IAssemblyLoaderFilter.ShouldConsiderAssembly(System.Reflection.AssemblyName)"/> are
            passed on to this step.</remarks>
        </member>
        <member name="T:Remotion.ServiceLocation.DefaultServiceConfigurationDiscoveryService">
            <summary>
            Provides services for scanning a range of types for default service configuration settings, as they would be applied by 
            <see cref="T:Remotion.ServiceLocation.DefaultServiceLocator"/>. Use this class in order to configure a specific service locator with <see cref="T:Remotion.ServiceLocation.DefaultServiceLocator"/>'s
            defaults.
            </summary>
            <remarks>
            <para>
            <see cref="T:Remotion.ServiceLocation.DefaultServiceConfigurationDiscoveryService"/> uses the same logic as <see cref="T:Remotion.ServiceLocation.DefaultServiceLocator"/> in order to find the
            default concrete implementation of service types configured via the <see cref="T:Remotion.ServiceLocation.ConcreteImplementationAttribute"/>. See 
            <see cref="T:Remotion.ServiceLocation.DefaultServiceLocator"/> for more information about this.
            </para>
            <para>
            Concrete implementations registered with a specific <see cref="T:Remotion.ServiceLocation.DefaultServiceLocator"/> using its <see cref="M:Remotion.ServiceLocation.DefaultServiceLocator.Register(Remotion.ServiceLocation.ServiceConfigurationEntry)"/>
            methods are not returned by this class.
            </para>
            </remarks>
        </member>
        <member name="M:Remotion.ServiceLocation.DefaultServiceConfigurationDiscoveryService.GetDefaultConfiguration(System.ComponentModel.Design.ITypeDiscoveryService)">
            <summary>
            Gets the default service configuration for the types returned by the given <see cref="T:System.ComponentModel.Design.ITypeDiscoveryService"/>.
            </summary>
            <param name="typeDiscoveryService">The type discovery service.</param>
            <returns>A <see cref="T:Remotion.ServiceLocation.ServiceConfigurationEntry"/> for each type returned by the <paramref name="typeDiscoveryService"/> that has the
            <see cref="T:Remotion.ServiceLocation.ConcreteImplementationAttribute"/> applied. Types without the attribute are ignored.</returns>
        </member>
        <member name="M:Remotion.ServiceLocation.DefaultServiceConfigurationDiscoveryService.GetDefaultConfiguration(System.Collections.Generic.IEnumerable{System.Type})">
            <summary>
            Gets the default service configuration for the given types.
            </summary>
            <param name="types">The types to get the default service configuration for.</param>
            <returns>A <see cref="T:Remotion.ServiceLocation.ServiceConfigurationEntry"/> for each type that has the <see cref="T:Remotion.ServiceLocation.ConcreteImplementationAttribute"/> applied. 
            Types without the attribute are ignored.</returns>
        </member>
        <member name="M:Remotion.ServiceLocation.DefaultServiceConfigurationDiscoveryService.GetDefaultConfiguration(System.Collections.Generic.IEnumerable{System.Reflection.Assembly})">
            <summary>
            Gets the default service configuration for the types in the given assemblies.
            </summary>
            <param name="assemblies">The assemblies for whose types to get the default service configuration.</param>
            <returns>A <see cref="T:Remotion.ServiceLocation.ServiceConfigurationEntry"/> for each type that has the <see cref="T:Remotion.ServiceLocation.ConcreteImplementationAttribute"/> applied. 
            Types without the attribute are ignored.</returns>
        </member>
        <member name="T:Remotion.ServiceLocation.DefaultServiceLocator">
            <summary>
            Provides a default implementation of the <see cref="T:Microsoft.Practices.ServiceLocation.IServiceLocator"/> interface based on the <see cref="T:Remotion.ServiceLocation.ConcreteImplementationAttribute"/>.
            The <see cref="T:Remotion.ServiceLocation.SafeServiceLocator"/> uses (and registers) an instance of this class unless an application registers its own service locator via 
            <see cref="M:Microsoft.Practices.ServiceLocation.ServiceLocator.SetLocatorProvider(Microsoft.Practices.ServiceLocation.ServiceLocatorProvider)"/>.
            </summary>
            <remarks>
            <para>
            This implementation of <see cref="T:Microsoft.Practices.ServiceLocation.IServiceLocator"/> uses the <see cref="T:Remotion.ServiceLocation.ConcreteImplementationAttribute"/> to resolve implementations of
            "service types" (usually interfaces or abstract classes). When the <see cref="T:Remotion.ServiceLocation.DefaultServiceLocator"/> is asked to get an instance of a specific 
            service type for the first time, that type is checked for a <see cref="T:Remotion.ServiceLocation.ConcreteImplementationAttribute"/>, which is then inspected to determine 
            the actual concrete type to be instantiated, its lifetime, and similar properties. An instance is then returned that fulfills the properties 
            defined by the <see cref="T:Remotion.ServiceLocation.ConcreteImplementationAttribute"/>. After the first resolution of a service type, the instance (or a factory, 
            depending on the <see cref="T:Remotion.ServiceLocation.LifetimeKind"/> associated with the type) is cached, so subsequent lookups for the same type are very fast.
            </para>
            <para>
            The <see cref="T:Remotion.ServiceLocation.DefaultServiceLocator"/> also provides a set of <see cref="M:Remotion.ServiceLocation.DefaultServiceLocator.Register(Remotion.ServiceLocation.ServiceConfigurationEntry)"/> methods 
            that allow to registration of custom 
            implementations or factories for service types even if those types do not have the <see cref="T:Remotion.ServiceLocation.ConcreteImplementationAttribute"/> applied. 
            Applications can use this to override the configuration defined by the <see cref="T:Remotion.ServiceLocation.ConcreteImplementationAttribute"/> and to register 
            implementations of service types that do not have the <see cref="T:Remotion.ServiceLocation.ConcreteImplementationAttribute"/> applied. Custom implementations or factories
            must be registered before an instance of the respective service type is retrieved for the first time.
            </para>
            <para>
            In order to be instantiable by the <see cref="T:Remotion.ServiceLocation.DefaultServiceLocator"/>, a concrete type indicated by the 
            <see cref="T:Remotion.ServiceLocation.ConcreteImplementationAttribute"/> must have exactly one public constructor. The constructor may have parameters, in which case
            the <see cref="T:Remotion.ServiceLocation.DefaultServiceLocator"/> will try to get an instance for each of the parameters using the same <see cref="T:Microsoft.Practices.ServiceLocation.IServiceLocator"/>
            methods. If a parameter cannot be resolved (because the parameter type has no <see cref="T:Remotion.ServiceLocation.ConcreteImplementationAttribute"/> applied and no
            custom implementation or factory was manually registered), an exception is thrown. Dependency cycles are not detected and will lead to a 
            <see cref="T:System.StackOverflowException"/> or infinite loop. Use the <see cref="M:Remotion.ServiceLocation.DefaultServiceLocator.Register(Remotion.ServiceLocation.ServiceConfigurationEntry)"/> method to manually 
            register a factory for types that do not apply to these constructor rules.
            </para>
            <para>
            In order to have a custom service locator use the same defaults as the <see cref="T:Remotion.ServiceLocation.DefaultServiceLocator"/>, the 
            <see cref="T:Remotion.ServiceLocation.DefaultServiceConfigurationDiscoveryService"/> can be used to extract those defaults from a set of types.
            </para>
            </remarks>
            <threadsafety static="true" instance="true"/>
        </member>
        <member name="M:Remotion.ServiceLocation.DefaultServiceLocator.GetInstance(System.Type)">
            <summary>
            Get an instance of the given <paramref name="serviceType"/>. The type must either have a <see cref="T:Remotion.ServiceLocation.ConcreteImplementationAttribute"/>, or
            a concrete implementation or factory must have been registered using one of the <see cref="M:Remotion.ServiceLocation.DefaultServiceLocator.Register(Remotion.ServiceLocation.ServiceConfigurationEntry)"/> methods.
            </summary>
            <param name="serviceType">The type of object requested.</param>
            <returns>The requested service instance.</returns>
            <exception cref="T:Microsoft.Practices.ServiceLocation.ActivationException">There was an error resolving the service instance: The 
            <see cref="T:Remotion.ServiceLocation.ConcreteImplementationAttribute"/> could not be found on the <paramref name="serviceType"/>, or the concrete implementation could
            not be instantiated. Inspect the <see cref="P:System.Exception.InnerException"/> property for the reason of the exception.</exception>
        </member>
        <member name="M:Remotion.ServiceLocation.DefaultServiceLocator.GetInstance(System.Type,System.String)">
            <summary>
            Get an instance of the given <paramref name="serviceType"/>. The type must either have a <see cref="T:Remotion.ServiceLocation.ConcreteImplementationAttribute"/>, or
            a concrete implementation or factory must have been registered using one of the <see cref="M:Remotion.ServiceLocation.DefaultServiceLocator.Register(Remotion.ServiceLocation.ServiceConfigurationEntry)"/> methods.
            </summary>
            <param name="serviceType">The type of object requested.</param>
            <param name="key">The name the object was registered with. This parameter is ignored by this implementation of <see cref="T:Microsoft.Practices.ServiceLocation.IServiceLocator"/>.</param>
            <returns>The requested service instance.</returns>
            <exception cref="T:Microsoft.Practices.ServiceLocation.ActivationException">There was an error resolving the service instance: The 
            <see cref="T:Remotion.ServiceLocation.ConcreteImplementationAttribute"/> could not be found on the <paramref name="serviceType"/>, or the concrete implementation could
            not be instantiated. Inspect the <see cref="P:System.Exception.InnerException"/> property for the reason of the exception.</exception>
        </member>
        <member name="M:Remotion.ServiceLocation.DefaultServiceLocator.GetAllInstances(System.Type)">
            <summary>
            Get all instance of the given <paramref name="serviceType"/>, or an empty sequence if no instance could be found.
            </summary>
            <param name="serviceType">The type of object requested.</param>
            <returns>
            A sequence of instances of the requested <paramref name="serviceType"/>. The <paramref name="serviceType"/> must either have a 
            <see cref="T:Remotion.ServiceLocation.ConcreteImplementationAttribute"/>, or a concrete implementation or factory must have been registered using one of the 
            <see cref="M:Remotion.ServiceLocation.DefaultServiceLocator.Register(Remotion.ServiceLocation.ServiceConfigurationEntry)"/> methods. Otherwise, the sequence is empty.
            </returns>
            <exception cref="T:Microsoft.Practices.ServiceLocation.ActivationException">There was an error resolving the service instances: The concrete 
            implementation could not be instantiated. Inspect the <see cref="P:System.Exception.InnerException"/> property for the reason of the exception.</exception>
        </member>
        <member name="M:Remotion.ServiceLocation.DefaultServiceLocator.GetInstance``1">
             <summary>
             Get an instance of the given <typeparamref name="TService"/> type. The type must either have a <see cref="T:Remotion.ServiceLocation.ConcreteImplementationAttribute"/>, 
             or a concrete implementation or factory must have been registered using one of the <see cref="M:Remotion.ServiceLocation.DefaultServiceLocator.Register(Remotion.ServiceLocation.ServiceConfigurationEntry)"/> methods.
             </summary>
            <typeparam name="TService">The type of object requested.</typeparam>
             <returns>The requested service instance.</returns>
             <exception cref="T:Microsoft.Practices.ServiceLocation.ActivationException">There was an error resolving the service instance: The 
             <see cref="T:Remotion.ServiceLocation.ConcreteImplementationAttribute"/> could not be found on the <typeparamref name="TService"/>, type or the concrete implementation 
             could not be instantiated. Inspect the <see cref="P:System.Exception.InnerException"/> property for the reason of the exception.</exception>
        </member>
        <member name="M:Remotion.ServiceLocation.DefaultServiceLocator.GetInstance``1(System.String)">
            <summary>
            Get an instance of the given <typeparamref name="TService"/> type. The type must either have a <see cref="T:Remotion.ServiceLocation.ConcreteImplementationAttribute"/>,
            or a concrete implementation or factory must have been registered using one of the <see cref="M:Remotion.ServiceLocation.DefaultServiceLocator.Register(Remotion.ServiceLocation.ServiceConfigurationEntry)"/> methods.
            </summary>
            <typeparam name="TService">The type of object requested.</typeparam>
            <param name="key">The name the object was registered with. This parameter is ignored by this implementation of <see cref="T:Microsoft.Practices.ServiceLocation.IServiceLocator"/>.</param>
            <returns>The requested service instance.</returns>
            <exception cref="T:Microsoft.Practices.ServiceLocation.ActivationException">There was an error resolving the service instance: The
            <see cref="T:Remotion.ServiceLocation.ConcreteImplementationAttribute"/> could not be found on the <typeparamref name="TService"/>, type or the concrete implementation
            could not be instantiated. Inspect the <see cref="P:System.Exception.InnerException"/> property for the reason of the exception.</exception>
        </member>
        <member name="M:Remotion.ServiceLocation.DefaultServiceLocator.GetAllInstances``1">
            <summary>
            Get all instance of the given <typeparamref name="TService"/> type, or an empty sequence if no instance could be found.
            </summary>
            <typeparam name="TService">The type of object requested.</typeparam>
            <returns>
            A sequence of instances of the requested <typeparamref name="TService"/> type. The <typeparamref name="TService"/> type must either have a 
            <see cref="T:Remotion.ServiceLocation.ConcreteImplementationAttribute"/>, or a concrete implementation or factory must have been registered using one of the 
            <see cref="M:Remotion.ServiceLocation.DefaultServiceLocator.Register(Remotion.ServiceLocation.ServiceConfigurationEntry)"/> methods. Otherwise, the sequence is empty.
            </returns>
            <exception cref="T:Microsoft.Practices.ServiceLocation.ActivationException">There was an error resolving the service instances: The concrete 
            implementation could not be instantiated. Inspect the <see cref="P:System.Exception.InnerException"/> property for the reason of the exception.</exception>
        </member>
        <member name="M:Remotion.ServiceLocation.DefaultServiceLocator.System#IServiceProvider#GetService(System.Type)">
            <summary>
            Get an instance of the given <paramref name="serviceType"/>. The type must either have a <see cref="T:Remotion.ServiceLocation.ConcreteImplementationAttribute"/>, or
            a concrete implementation or factory must have been registered using one of the <see cref="M:Remotion.ServiceLocation.DefaultServiceLocator.Register(Remotion.ServiceLocation.ServiceConfigurationEntry)"/> methods. Otherwise, 
            the method returns <see langword="null"/>.
            </summary>
            <param name="serviceType">The type of object requested.</param>
            <returns>The requested service instance, or <see langword="null"/> if no instance could be found.</returns>
            <exception cref="T:Microsoft.Practices.ServiceLocation.ActivationException">There was an error resolving the service instance: The concrete 
            implementation could not be instantiated. Inspect the <see cref="P:System.Exception.InnerException"/> property for the reason of the exception.</exception>
        </member>
        <member name="M:Remotion.ServiceLocation.DefaultServiceLocator.Register(System.Type,System.Func{System.Object}[])">
            <summary>
            Registers factories for the specified <paramref name="serviceType"/>. 
            The factories are subsequently invoked whenever instances for the <paramref name="serviceType"/> is requested.
            </summary>
            <param name="serviceType">The service type to register the factories for.</param>
            <param name="instanceFactories">The instance factories to use when resolving instances for the <paramref name="serviceType"/>. These factories
            must return non-null instances implementing the <paramref name="serviceType"/>, otherwise an <see cref="T:Microsoft.Practices.ServiceLocation.ActivationException"/> is thrown
            when an instance of <paramref name="serviceType"/> is requested.</param>
            <exception cref="T:System.InvalidOperationException">Factories have already been registered or an instance of the <paramref name="serviceType"/> has 
            already been retrieved. Registering factories or concrete implementations can only be done before any instances are retrieved.</exception>
        </member>
        <member name="M:Remotion.ServiceLocation.DefaultServiceLocator.Register(System.Type,System.Collections.Generic.IEnumerable{System.Func{System.Object}})">
            <summary>
            Registers factories for the specified <paramref name="serviceType"/>. 
            The factories are subsequently invoked whenever instances for the <paramref name="serviceType"/> is requested.
            </summary>
            <param name="serviceType">The service type to register the factories for.</param>
            <param name="instanceFactories">The instance factories to use when resolving instances for the <paramref name="serviceType"/>. These factories
            must return non-null instances implementing the <paramref name="serviceType"/>, otherwise an <see cref="T:Microsoft.Practices.ServiceLocation.ActivationException"/> is thrown
            when an instance of <paramref name="serviceType"/> is requested.</param>
            <exception cref="T:System.InvalidOperationException">Factories have already been registered or an instance of the <paramref name="serviceType"/> has 
            already been retrieved. Registering factories or concrete implementations can only be done before any instances are retrieved.</exception>
        </member>
        <member name="M:Remotion.ServiceLocation.DefaultServiceLocator.Register(System.Type,System.Type,Remotion.ServiceLocation.LifetimeKind)">
            <summary>
            Registers a concrete implementation for the specified <paramref name="serviceType"/>.
            </summary>
            <param name="serviceType">The service type to register a concrete implementation for.</param>
            <param name="concreteImplementationType">The type of the concrete implementation to be instantiated when an instance of the 
            <paramref name="serviceType"/> is retrieved.</param>
            <param name="lifetime">The lifetime of the instances.</param>
            <exception cref="T:System.InvalidOperationException">An instance of the <paramref name="serviceType"/> has already been retrieved. Registering factories
            or concrete implementations can only be done before any instances are retrieved.</exception>
        </member>
        <member name="M:Remotion.ServiceLocation.DefaultServiceLocator.Register(Remotion.ServiceLocation.ServiceConfigurationEntry)">
            <summary>
            Registers a concrete implementation.
            </summary>
            <param name="serviceConfigurationEntry">A <see cref="T:Remotion.ServiceLocation.ServiceConfigurationEntry"/> describing the concrete implementation to be registered.</param>
            <exception cref="T:System.InvalidOperationException">An instance of the service type described by the <paramref name="serviceConfigurationEntry"/>
            has already been retrieved. Registering factories or concrete implementations can only be done before any instances are retrieved.</exception>
        </member>
        <member name="T:Remotion.ServiceLocation.ServiceConfigurationEntry">
            <summary>
            Holds the parameters used by <see cref="T:Remotion.ServiceLocation.DefaultServiceLocator"/> for instantiating instances of service types. Use 
            <see cref="T:Remotion.ServiceLocation.DefaultServiceConfigurationDiscoveryService"/> to retrieve the <see cref="T:Remotion.ServiceLocation.ServiceConfigurationEntry"/> data for a specific type.
            </summary>
        </member>
        <member name="M:Remotion.ServiceLocation.ServiceConfigurationEntry.CreateFromAttributes(System.Type,System.Collections.Generic.IEnumerable{Remotion.ServiceLocation.ConcreteImplementationAttribute})">
            <summary>
            Creates a <see cref="T:Remotion.ServiceLocation.ServiceConfigurationEntry"/> from a <see cref="T:Remotion.ServiceLocation.ConcreteImplementationAttribute"/>.
            </summary>
            <param name="serviceType">The service type.</param>
            <param name="attributes">The attributes holding information about the concrete implementation of the <paramref name="serviceType"/>.</param>
            <returns>A <see cref="T:Remotion.ServiceLocation.ServiceConfigurationEntry"/> containing the data from the <paramref name="attributes"/>.</returns>
        </member>
        <member name="M:Remotion.ServiceLocation.ServiceConfigurationEntry.#ctor(System.Type,Remotion.ServiceLocation.ServiceImplementationInfo[])">
            <summary>
            Initializes a new instance of the <see cref="T:Remotion.ServiceLocation.ServiceConfigurationEntry"/> class.
            </summary>
            <param name="serviceType">The service type. This is a type for which instances are requested from a service locator.</param>
            <param name="implementationInfos">The <see cref="T:Remotion.ServiceLocation.ServiceImplementationInfo"/> for the <paramref name="serviceType"/>.</param>
        </member>
        <member name="M:Remotion.ServiceLocation.ServiceConfigurationEntry.#ctor(System.Type,System.Collections.Generic.IEnumerable{Remotion.ServiceLocation.ServiceImplementationInfo})">
            <summary>
            Initializes a new instance of the <see cref="T:Remotion.ServiceLocation.ServiceConfigurationEntry"/> class.
            </summary>
            <param name="serviceType">The service type. This is a type for which instances are requested from a service locator.</param>
            <param name="implementationInfos">The service implementation information.</param>
        </member>
        <member name="M:Remotion.ServiceLocation.ServiceConfigurationEntry.ToString">
            <inheritdoc />
        </member>
        <member name="P:Remotion.ServiceLocation.ServiceConfigurationEntry.ServiceType">
            <summary>
            Gets the service type. This is a type for which instances are requested from a service locator.
            </summary>
            <value>The service type.</value>
        </member>
        <member name="P:Remotion.ServiceLocation.ServiceConfigurationEntry.ImplementationInfos">
            <summary>
            Gets information about all service implementations.
            </summary>
            <value>A collection of <see cref="T:Remotion.ServiceLocation.ServiceImplementationInfo"/> instances.</value>
            <remarks>
            When this information is used to configure an implementation of <see cref="T:Microsoft.Practices.ServiceLocation.IServiceLocator"/>, <see cref="M:Microsoft.Practices.ServiceLocation.IServiceLocator.GetAllInstances(System.Type)"/>
            must return the implementing instances in exactly the same order as defined by <see cref="P:Remotion.ServiceLocation.ServiceConfigurationEntry.ImplementationInfos"/>.
            </remarks>
        </member>
        <member name="T:Remotion.Utilities.CustomAttributeTypedArgumentUtility">
            <summary>
            Utility for recursively unwrapping <see cref="T:System.Reflection.CustomAttributeTypedArgument"/> instances.
            </summary>
        </member>
        <member name="T:Remotion.Utilities.DefaultConverter">
            <summary>
            The <see cref="T:Remotion.Utilities.DefaultConverter"/> provides a default implementation of <see cref="T:System.ComponentModel.TypeConverter"/> that does not actually modify the converted 
            values and can only convert from and to a given <see cref="T:System.Type"/>. It is, therefore, de-facto a no-op implementation of 
            <see cref="T:System.ComponentModel.TypeConverter"/>. It also supports converting from the underlying type to a nullable value type.
            </summary>
        </member>
        <member name="T:Remotion.Utilities.DelegateBasedEqualityComparer`1">
            <summary>
            <see cref="T:Remotion.Utilities.DelegateBasedEqualityComparer`1"/> implements <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> to compare two objects and calculate hash codes 
            with the specified delegates.
            </summary>
            <typeparam name="T">The type of the objects to be compared.</typeparam>
        </member>
        <member name="T:Remotion.Utilities.FuncUtility">
            <summary>
            Provides commonly used operations on <see cref="T:System.Func`2"/> delegate types.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.TypeDiscovery.AssemblyLoading.AssemblyLoaderException">
            <summary>
            Thrown when the automatic assembly loading performed by an implementation of <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyLoading.IAssemblyLoader"/> yields an error during a
            load operation.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.CodeGeneration.GeneratedMethodWrapperAttribute">
            <summary>
            Marks a generated method as a public wrapper for another method.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.TypeDiscovery.AssemblyLoading.FilteringAssemblyLoader">
            <summary>
            Loads assemblies and applies <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyLoading.IAssemblyLoaderFilter">filters</see> before returning them.
            Assemblies are loaded from a file path by first getting their corresponding <see cref="T:System.Reflection.AssemblyName"/> and then loading the assembly with that 
            name.
            This means that only assemblies from the assembly search path (application directory, dynamic directory, GAC) can be loaded, and that GAC 
            assemblies are preferred. The advantage of this load mode is that assemblies are loaded exactly the same way as if loaded directly by .NET:
            they are always loaded into the correct context and references are resolved correctly.
            </summary>
            <remarks>
            The assemblies loaded by this class can be filtered by implementations of <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyLoading.IAssemblyLoaderFilter"/>.
            </remarks>
        </member>
        <member name="M:Remotion.Reflection.CodeGeneration.IClassEmitter.CreateFullNamedMethodOverride(System.Reflection.MethodInfo)">
            <summary>
            Creates a full-named method override, i.e. a method override with the same visibility as whose name includes the name of the base method's
            declaring type, similar to an explicit interface implementation.
            </summary>
            <param name="baseMethod">The base method to override.</param>
            <returns>A <see cref="T:Remotion.Reflection.CodeGeneration.CustomMethodEmitter"/> for the full-named method override.</returns>
            <remarks>This method can be useful when overriding several (shadowed) methods of the same name inherited by different base types.</remarks>
        </member>
        <member name="M:Remotion.Reflection.CodeGeneration.IClassEmitter.CreatePublicInterfaceMethodImplementation(System.Reflection.MethodInfo)">
            <summary>
            Creates a public interface method implementation, i.e. an interface implementation with public visibility whose name equals the name
            of the interface method (like a C# implicit interface implementation).
            </summary>
            <param name="interfaceMethod">The interface method to implement.</param>
            <returns>A <see cref="T:Remotion.Reflection.CodeGeneration.CustomMethodEmitter"/> for the interface implementation.</returns>
            <remarks>The generated method has public visibility and the <see cref="F:System.Reflection.MethodAttributes.NewSlot"/> flag set. This means that the method
            will shadow methods from the base type with the same name and signature, not override them. Use <see cref="M:Remotion.Reflection.CodeGeneration.IClassEmitter.CreateFullNamedMethodOverride(System.Reflection.MethodInfo)"/> to
            explicitly create an override for such a method.</remarks>
        </member>
        <member name="M:Remotion.Reflection.CodeGeneration.IClassEmitter.CreateNestedClass(System.String,System.Type,System.Type[])">
            <summary>
            Creates a nested class within the type emitted by this <see cref="T:Remotion.Reflection.CodeGeneration.IClassEmitter"/>.
            </summary>
            <param name="typeName">The name of the nested type.</param>
            <param name="baseType">The base type of the nested type.</param>
            <param name="interfaces">The interfaces to be implemented by the nested type.</param>
            <returns>A new <see cref="T:Remotion.Reflection.CodeGeneration.IClassEmitter"/> for the nested class.</returns>
        </member>
        <member name="M:Remotion.Reflection.CodeGeneration.IClassEmitter.CreateNestedClass(System.String,System.Type,System.Type[],System.Reflection.TypeAttributes)">
            <summary>
            Creates a nested type within the type emitted by this <see cref="T:Remotion.Reflection.CodeGeneration.IClassEmitter"/>.
            </summary>
            <param name="typeName">The name of the nested type.</param>
            <param name="baseType">The base type of the nested type.</param>
            <param name="interfaces">The interfaces to be implemented by the nested type.</param>
            <param name="flags">The <see cref="T:System.Reflection.TypeAttributes"/> to use for the nested type.</param>
            <returns>A new <see cref="T:Remotion.Reflection.CodeGeneration.IClassEmitter"/> for the nested type.</returns>
        </member>
        <member name="T:Remotion.Reflection.DynamicParamList">
            <summary>
            Implements the <see cref="T:Remotion.Reflection.ParamList"/> class for scenarios where the number or types of parameters are chosen at runtime.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.ParamListImplementation">
            <summary>
            Implements <see cref="T:Remotion.Reflection.ParamList"/> for a specific number of arguments. Use one of the <see cref="M:Remotion.Reflection.ParamList.Create"/> overloads to create
            instances of the <see cref="T:Remotion.Reflection.ParamList"/> implementation classes.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.ParamListImplementation`2">
            <summary>
            Implements <see cref="T:Remotion.Reflection.ParamList"/> for a specific number of arguments. Use one of the <see cref="M:Remotion.Reflection.ParamList.Create"/> overloads to create
            instances of the <see cref="T:Remotion.Reflection.ParamList"/> implementation classes.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.ParamListImplementation`3">
            <summary>
            Implements <see cref="T:Remotion.Reflection.ParamList"/> for a specific number of arguments. Use one of the <see cref="M:Remotion.Reflection.ParamList.Create"/> overloads to create
            instances of the <see cref="T:Remotion.Reflection.ParamList"/> implementation classes.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.ParamListImplementation`4">
            <summary>
            Implements <see cref="T:Remotion.Reflection.ParamList"/> for a specific number of arguments. Use one of the <see cref="M:Remotion.Reflection.ParamList.Create"/> overloads to create
            instances of the <see cref="T:Remotion.Reflection.ParamList"/> implementation classes.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.ParamListImplementation`5">
            <summary>
            Implements <see cref="T:Remotion.Reflection.ParamList"/> for a specific number of arguments. Use one of the <see cref="M:Remotion.Reflection.ParamList.Create"/> overloads to create
            instances of the <see cref="T:Remotion.Reflection.ParamList"/> implementation classes.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.ParamListImplementation`6">
            <summary>
            Implements <see cref="T:Remotion.Reflection.ParamList"/> for a specific number of arguments. Use one of the <see cref="M:Remotion.Reflection.ParamList.Create"/> overloads to create
            instances of the <see cref="T:Remotion.Reflection.ParamList"/> implementation classes.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.ParamListImplementation`7">
            <summary>
            Implements <see cref="T:Remotion.Reflection.ParamList"/> for a specific number of arguments. Use one of the <see cref="M:Remotion.Reflection.ParamList.Create"/> overloads to create
            instances of the <see cref="T:Remotion.Reflection.ParamList"/> implementation classes.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.ParamListImplementation`8">
            <summary>
            Implements <see cref="T:Remotion.Reflection.ParamList"/> for a specific number of arguments. Use one of the <see cref="M:Remotion.Reflection.ParamList.Create"/> overloads to create
            instances of the <see cref="T:Remotion.Reflection.ParamList"/> implementation classes.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.ParamListImplementation`9">
            <summary>
            Implements <see cref="T:Remotion.Reflection.ParamList"/> for a specific number of arguments. Use one of the <see cref="M:Remotion.Reflection.ParamList.Create"/> overloads to create
            instances of the <see cref="T:Remotion.Reflection.ParamList"/> implementation classes.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.ParamListImplementation`10">
            <summary>
            Implements <see cref="T:Remotion.Reflection.ParamList"/> for a specific number of arguments. Use one of the <see cref="M:Remotion.Reflection.ParamList.Create"/> overloads to create
            instances of the <see cref="T:Remotion.Reflection.ParamList"/> implementation classes.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.ParamListImplementation`11">
            <summary>
            Implements <see cref="T:Remotion.Reflection.ParamList"/> for a specific number of arguments. Use one of the <see cref="M:Remotion.Reflection.ParamList.Create"/> overloads to create
            instances of the <see cref="T:Remotion.Reflection.ParamList"/> implementation classes.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.ParamListImplementation`12">
            <summary>
            Implements <see cref="T:Remotion.Reflection.ParamList"/> for a specific number of arguments. Use one of the <see cref="M:Remotion.Reflection.ParamList.Create"/> overloads to create
            instances of the <see cref="T:Remotion.Reflection.ParamList"/> implementation classes.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.ParamListImplementation`13">
            <summary>
            Implements <see cref="T:Remotion.Reflection.ParamList"/> for a specific number of arguments. Use one of the <see cref="M:Remotion.Reflection.ParamList.Create"/> overloads to create
            instances of the <see cref="T:Remotion.Reflection.ParamList"/> implementation classes.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.ParamListImplementation`14">
            <summary>
            Implements <see cref="T:Remotion.Reflection.ParamList"/> for a specific number of arguments. Use one of the <see cref="M:Remotion.Reflection.ParamList.Create"/> overloads to create
            instances of the <see cref="T:Remotion.Reflection.ParamList"/> implementation classes.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.ParamListImplementation`15">
            <summary>
            Implements <see cref="T:Remotion.Reflection.ParamList"/> for a specific number of arguments. Use one of the <see cref="M:Remotion.Reflection.ParamList.Create"/> overloads to create
            instances of the <see cref="T:Remotion.Reflection.ParamList"/> implementation classes.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.ParamListImplementation`16">
            <summary>
            Implements <see cref="T:Remotion.Reflection.ParamList"/> for a specific number of arguments. Use one of the <see cref="M:Remotion.Reflection.ParamList.Create"/> overloads to create
            instances of the <see cref="T:Remotion.Reflection.ParamList"/> implementation classes.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.ParamListImplementation`17">
            <summary>
            Implements <see cref="T:Remotion.Reflection.ParamList"/> for a specific number of arguments. Use one of the <see cref="M:Remotion.Reflection.ParamList.Create"/> overloads to create
            instances of the <see cref="T:Remotion.Reflection.ParamList"/> implementation classes.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.ParamListImplementation`18">
            <summary>
            Implements <see cref="T:Remotion.Reflection.ParamList"/> for a specific number of arguments. Use one of the <see cref="M:Remotion.Reflection.ParamList.Create"/> overloads to create
            instances of the <see cref="T:Remotion.Reflection.ParamList"/> implementation classes.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.ParamListImplementation`19">
            <summary>
            Implements <see cref="T:Remotion.Reflection.ParamList"/> for a specific number of arguments. Use one of the <see cref="M:Remotion.Reflection.ParamList.Create"/> overloads to create
            instances of the <see cref="T:Remotion.Reflection.ParamList"/> implementation classes.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.ParamListImplementation`20">
            <summary>
            Implements <see cref="T:Remotion.Reflection.ParamList"/> for a specific number of arguments. Use one of the <see cref="M:Remotion.Reflection.ParamList.Create"/> overloads to create
            instances of the <see cref="T:Remotion.Reflection.ParamList"/> implementation classes.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.ParamListImplementation`1">
            <summary>
            Implements <see cref="T:Remotion.Reflection.ParamList"/> for a specific number of arguments. Use one of the <see cref="M:Remotion.Reflection.ParamList.Create"/> overloads to create
            instances of the <see cref="T:Remotion.Reflection.ParamList"/> implementation classes.
            </summary>
        </member>
        <member name="T:Remotion.Collections.LockingDataStoreDecorator`2">
            <summary>
            Provides a synchronization wrapper around an implementation of <see cref="T:Remotion.Collections.IDataStore`2"/>. Use 
            <see cref="M:Remotion.Collections.DataStoreFactory.CreateWithLocking``2"/> to create an instance of this type.
            </summary>
            <typeparam name="TKey">The type of the keys.</typeparam>
            <typeparam name="TValue">The type of the values.</typeparam>
            <remarks>
            Instances of this object delegate every method call to an inner <see cref="T:Remotion.Collections.IDataStore`2"/> implementation,
            locking on a private synchronization object while the method is executed. This provides a convenient way to make an 
            <see cref="T:Remotion.Collections.IDataStore`2"/> thread-safe, as long as the store is only accessed through this wrapper.
            </remarks>
            <threadsafety static="true" instance="true"/>
        </member>
        <member name="M:Remotion.Collections.LockingDataStoreDecorator`2.#ctor(Remotion.Collections.IDataStore{`0,`1})">
            <summary>
            Initializes a new instance of the <see cref="T:Remotion.Collections.LockingDataStoreDecorator`2"/> class.
            </summary>
            <param name="innerStore">The inner store which is wrapped.</param>
        </member>
        <member name="M:Remotion.Collections.LockingDataStoreDecorator`2.ContainsKey(`0)">
            <summary>
            Determines whether the store contains an element with the specified <paramref name="key"/>.
            </summary>
            <param name="key">The key to look up.</param>
            <returns>
            true if the store contains the specified key; otherwise, false.
            </returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:Remotion.Collections.LockingDataStoreDecorator`2.Add(`0,`1)">
            <summary>
            Adds a new element to the store.
            </summary>
            <param name="key">The key of the new element.</param>
            <param name="value">The value of the new element.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException">An item with an equal key already exists in the store.</exception>
        </member>
        <member name="M:Remotion.Collections.LockingDataStoreDecorator`2.Remove(`0)">
            <summary>
            Removes the element with the specified key from the store, if any.
            </summary>
            <param name="key">The key of the element to be removed.</param>
            <returns>
            true if the item was found in the store; otherwise, false.
            </returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:Remotion.Collections.LockingDataStoreDecorator`2.Clear">
            <summary>
            Removes all elements from the store.
            </summary>
        </member>
        <member name="M:Remotion.Collections.LockingDataStoreDecorator`2.GetValueOrDefault(`0)">
            <summary>
            Gets the value of the element with the specified key, or <typeparamref name="TValue"/>'s default value if no such element exists.
            </summary>
            <param name="key">The key to look up.</param>
            <returns>
            The value of the element, or the default value if no such element exists.
            </returns>
        </member>
        <member name="M:Remotion.Collections.LockingDataStoreDecorator`2.TryGetValue(`0,`1@)">
            <summary>
            Tries to get the value of the element with the specified key.
            </summary>
            <param name="key">The key to look up.</param>
            <param name="value">The value of the element with the specified key, or <typeparamref name="TValue"/>'s default value if no such element
            exists.</param>
            <returns>
            true if an element with the specified key was found; otherwise, false.
            </returns>
        </member>
        <member name="M:Remotion.Collections.LockingDataStoreDecorator`2.GetOrCreateValue(`0,System.Func{`0,`1})">
            <summary>
            Gets the value of the element with the specified key, creating a new one if none exists.
            </summary>
            <param name="key">The key of the element to be retrieved.</param>
            <param name="creator">A delegate used for creating a new element if none exists.</param>
            <returns>
            The value of the element that was found or created.
            </returns>
        </member>
        <member name="P:Remotion.Collections.LockingDataStoreDecorator`2.Item(`0)">
            <summary>
            Gets or sets the <typeparamref name="TValue"/> with the specified key.
            </summary>
            <value></value>
        </member>
        <member name="T:Remotion.Collections.NullDataStore`2">
            <summary>
            This class implements a data store that doesn't actually store anything. It's part of the null object pattern.
            </summary>
            <typeparam name="TKey">The type of the keys.</typeparam>
            <typeparam name="TValue">The type of the values.</typeparam>
        </member>
        <member name="T:Remotion.Collections.SimpleDataStore`2">
            <summary>
            Implements the <see cref="T:Remotion.Collections.IDataStore`2"/> interface as a simple, not thread-safe in-memory data store based on a 
            <see cref="T:System.Collections.Generic.Dictionary`2"/>.
            </summary>
            <typeparam name="TKey">The type of the keys.</typeparam>
            <typeparam name="TValue">The type of the values.</typeparam>
        </member>
        <member name="M:Remotion.Collections.SimpleDataStore`2.ContainsKey(`0)">
            <summary>
            Determines whether the store contains an element with the specified <paramref name="key"/>.
            </summary>
            <param name="key">The key to look up.</param>
            <returns>
            true if the store contains the specified key; otherwise, false.
            </returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:Remotion.Collections.SimpleDataStore`2.Add(`0,`1)">
            <summary>
            Adds a new element to the store.
            </summary>
            <param name="key">The key of the new element.</param>
            <param name="value">The value of the new element.</param>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is <see langword="null"/>.</exception>
            <exception cref="T:System.ArgumentException">An item with an equal key already exists in the store.</exception>
        </member>
        <member name="M:Remotion.Collections.SimpleDataStore`2.Remove(`0)">
            <summary>
            Removes the element with the specified key from the store, if any.
            </summary>
            <param name="key">The key of the element to be removed.</param>
            <returns>
            true if the item was found in the store; otherwise, false.
            </returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="key"/> is <see langword="null"/>.</exception>
        </member>
        <member name="M:Remotion.Collections.SimpleDataStore`2.Clear">
            <summary>
            Removes all elements from the store.
            </summary>
        </member>
        <member name="M:Remotion.Collections.SimpleDataStore`2.GetValueOrDefault(`0)">
            <summary>
            Gets the value of the element with the specified key, or <typeparamref name="TValue"/>'s default value if no such element exists.
            </summary>
            <param name="key">The key to look up.</param>
            <returns>
            The value of the element, or the default value if no such element exists.
            </returns>
        </member>
        <member name="M:Remotion.Collections.SimpleDataStore`2.TryGetValue(`0,`1@)">
            <summary>
            Tries to get the value of the element with the specified key.
            </summary>
            <param name="key">The key to look up.</param>
            <param name="value">The value of the element with the specified key, or <typeparamref name="TValue"/>'s default value if no such element
            exists.</param>
            <returns>
            true if an element with the specified key was found; otherwise, false.
            </returns>
        </member>
        <member name="M:Remotion.Collections.SimpleDataStore`2.GetOrCreateValue(`0,System.Func{`0,`1})">
            <summary>
            Gets the value of the element with the specified key, creating a new one if none exists.
            </summary>
            <param name="key">The key of the element to be retrieved.</param>
            <param name="creator">A delegate used for creating a new element if none exists.</param>
            <returns>
            The value of the element that was found or created.
            </returns>
        </member>
        <member name="M:Remotion.Collections.SimpleDataStore`2.GetEnumerator">
            <summary>
            Returns an <see cref="T:System.Collections.Generic.IEnumerator`1"/> that iterates through the contents of this <see cref="T:Remotion.Collections.SimpleDataStore`2"/>.
            </summary>
            <returns>An <see cref="T:System.Collections.Generic.IEnumerator`1"/> that iterates through the contents of this <see cref="T:Remotion.Collections.SimpleDataStore`2"/>.</returns>
        </member>
        <member name="P:Remotion.Collections.SimpleDataStore`2.Item(`0)">
            <summary>
            Gets or sets the <typeparamref name="TValue"/> with the specified key.
            </summary>
            <value></value>
        </member>
        <member name="T:Remotion.Context.CallContextStorageProvider">
            <summary>
            Implements <see cref="T:Remotion.Context.ISafeContextStorageProvider"/> by storing data in the thread-local <see cref="T:System.Runtime.Remoting.Messaging.CallContext"/>.
            </summary>
        </member>
        <member name="T:Remotion.Globalization.ResourceManagerFactory">
            <summary>
            Provides methods to create resource managers for given resource management information.
            </summary>
        </member>
        <member name="M:Remotion.Globalization.ResourceManagerFactory.GetResourceManagers``1(System.Reflection.Assembly,``0[])">
            <summary>
              Returns an <b>ResourceManager</b> array for the resource containers specified through the 
              <paramref name="resourceAttributes"/>.
            </summary>
            <remarks>
      ResourceManagers are cached after their first initalization.
    </remarks><param name="assembly">
      The assembly containing the resources.
    </param><param name="resourceAttributes">
      The <see cref="T:Remotion.Globalization.MultiLingualResourcesAttribute"/> instances specifying the the resource managers.
    </param><returns>
      A <b>ResourceManager</b> Array containing the type's resource containers.
    </returns>
        </member>
        <member name="M:Remotion.Reflection.CodeGeneration.CustomClassEmitter.CreateFullNamedMethodOverride(System.Reflection.MethodInfo)">
            <inheritdoc />
        </member>
        <member name="M:Remotion.Reflection.CodeGeneration.CustomClassEmitter.CreatePublicInterfaceMethodImplementation(System.Reflection.MethodInfo)">
            <inheritdoc />
        </member>
        <member name="M:Remotion.Reflection.CodeGeneration.CustomClassEmitter.CreateNestedClass(System.String,System.Type,System.Type[])">
            <inheritdoc />
        </member>
        <member name="M:Remotion.Reflection.CodeGeneration.CustomClassEmitter.CreateNestedClass(System.String,System.Type,System.Type[],System.Reflection.TypeAttributes)">
            <inheritdoc />
        </member>
        <member name="T:Remotion.Reflection.CodeGeneration.DPExtensions.TypedMethodInvocationExpression">
            <summary>
            Replacement for <see cref="T:Castle.DynamicProxy.Generators.Emitters.SimpleAST.MethodInvocationExpression"/> with value type support.
            </summary>
        </member>
        <member name="T:Remotion.Collections.AutoInitDictionary`2">
            <summary>
              A dictionary that automatically creates new value objects when queried for a specific key.
            </summary>
            <remarks>
            	This collection should usually not be modified using <see cref="M:System.Collections.Generic.IDictionary`2.Add(`0,`1)"/>, setting values through 
              the indexer or removing items. Getting values through the indexer will assign a new object to the specified key if none exists.
            </remarks>
        </member>
        <member name="T:Remotion.Collections.MultiDictionary`2">
            <summary>
            A dictionary that contains a <see cref="T:System.Collections.Generic.List`1"/> of values for every key.
            </summary>
        </member>
        <member name="M:Remotion.Collections.MultiDictionary`2.Add(`0,`1)">
            <summary>
            Adds a value to the key's value list.
            </summary>
        </member>
        <member name="T:Remotion.Collections.LockingCacheDecorator`2">
            <summary>
            Provides a synchronization wrapper around an implementation of <see cref="T:Remotion.Collections.ICache`2"/>. Use 
            <see cref="M:Remotion.Collections.CacheFactory.CreateWithLocking``2"/> to create an instance of this type.
            </summary>
            <typeparam name="TKey">The type of the keys.</typeparam>
            <typeparam name="TValue">The type of the values.</typeparam>
            <remarks>
            Instances of this object delegate every method call to an inner <see cref="T:Remotion.Collections.ICache`2"/> implementation,
            locking on a private synchronization object while the method is executed. This provides a convenient way to make an 
            <see cref="T:Remotion.Collections.ICache`2"/> thread-safe, as long as the cache is only accessed through this wrapper.
            </remarks>
            <threadsafety static="true" instance="true"/>
        </member>
        <member name="T:Remotion.Collections.Set`1">
            <summary>
            Implements a set collection data type.
            </summary>
            <typeparam name="T">The type of items to be stored by this collection.</typeparam>
            <remarks>
            	<para>
            A <see cref="T:Remotion.Collections.Set`1"/> is an unordered collection of items, where each item added is held exactly once. When an item is added more than once
            (determined by the given <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> or the default comparer <see cref="P:System.Collections.Generic.EqualityComparer`1.Default"/>), the set
            will automatically ignore the second add operation.
            </para>
            	<para>
            The <see cref="T:Remotion.Collections.Set`1"/> data type is internally based on a <see cref="T:System.Collections.Generic.Dictionary`2"/>, so checking whether a set contains an item is
            very fast, but depends on the quality of the hashing algorithm used for <typeparamref name="T"/>.
            </para>
            <para>This collection type does not support items being <see langword="null"/>, is not automatically safe for multi-threading, and cannot be
            set to be read-only.</para>
            </remarks>
        </member>
        <member name="M:Remotion.Collections.Set`1.#ctor">
            <summary>
            Initializes a new empty instance of the <see cref="T:Remotion.Collections.Set`1"/> class.
            </summary>
        </member>
        <member name="M:Remotion.Collections.Set`1.#ctor(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:Remotion.Collections.Set`1"/> class, adding a range of initial items.
            </summary>
            <param name="initialItems">The initial items to be held by the set. If this contains duplicates, they will be filtered out while being
            added to the set.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="initialItems"/> parameter is <see langword="null"/> or contains a
            <see langword="null"/> reference.</exception>
        </member>
        <member name="M:Remotion.Collections.Set`1.#ctor(`0[])">
            <summary>
            Initializes a new instance of the <see cref="T:Remotion.Collections.Set`1"/> class, adding a range of initial items.
            </summary>
            <param name="initialItems">The initial items to be held by the set. If this contains duplicates, they will be filtered out while being
            added to the set.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="initialItems"/> parameter is <see langword="null"/> or contains a
            <see langword="null"/> reference.</exception>
        </member>
        <member name="M:Remotion.Collections.Set`1.#ctor(System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Initializes a new empty instance of the <see cref="T:Remotion.Collections.Set`1"/> class with a given <see cref="T:System.Collections.Generic.EqualityComparer`1"/>.
            </summary>
            <param name="equalityComparer">The comparer to be used to determine whether two items are equal to each other.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="equalityComparer"/> parameter is <see langword="null"/>.</exception>
        </member>
        <member name="M:Remotion.Collections.Set`1.#ctor(System.Collections.Generic.IEnumerable{`0},System.Collections.Generic.IEqualityComparer{`0})">
            <summary>
            Initializes a new instance of the <see cref="T:Remotion.Collections.Set`1"/> class, adding a range of initial items.
            </summary>
            <param name="initialItems">The initial items to be held by the set. If this contains duplicates, they will be filtered out in the adding
            process.</param>
            <param name="equalityComparer">The comparer to be used to determine whether two items are equal to each other.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="initialItems"/> parameter is <see langword="null"/> or contains a
            <see langword="null"/> reference, or the <paramref name="equalityComparer"/> parameter is <see langword="null"/>.</exception>
        </member>
        <member name="M:Remotion.Collections.Set`1.AddRange(System.Collections.Generic.IEnumerable{`0})">
            <summary>
            Adds a range of items to the set.
            </summary>
            <param name="items">The items to be added to the set. If this contains duplicates, they will be filtered out in the adding
            process.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="items"/> parameter is <see langword="null"/> or contains a
            <see langword="null"/> reference.</exception>
        </member>
        <member name="M:Remotion.Collections.Set`1.Add(`0)">
            <summary>
            Adds an item to the set.
            </summary>
            <param name="item">The item to add to the set. If the set already contains this item, the operation is ignored.</param>
            <exception cref="T:System.ArgumentNullException">The <paramref name="item"/> parameter is <see langword="null"/>.</exception>
        </member>
        <member name="M:Remotion.Collections.Set`1.Clear">
            <summary>
            Removes all items from the set.
            </summary>
        </member>
        <member name="M:Remotion.Collections.Set`1.Contains(`0)">
            <summary>
            Determines whether the set contains a specific value.
            </summary>
            <param name="item">The object to locate in the set.</param>
            <returns>
            True if item is found in the set; otherwise, false.
            </returns>
        </member>
        <member name="M:Remotion.Collections.Set`1.CopyTo(`0[],System.Int32)">
            <summary>
            Copies the elements of the set to an <see cref="T:System.Array"/> starting at a particular <see cref="T:System.Array"></see> index.
            </summary>
            <param name="array">The one-dimensional <see cref="T:System.Array"></see> that is the destination of the elements copied from
            the set. The <see cref="T:System.Array"></see> must have zero-based indexing.</param>
            <param name="arrayIndex">The zero-based index in array at which copying begins.</param>
            <exception cref="T:System.ArgumentOutOfRangeException"><paramref name="arrayIndex"/> is less than 0.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="array"/> is null.</exception>
            <exception cref="T:System.ArgumentException"><para><paramref name="array"/> is multidimensional.</para>
            <para>-or-</para>
            <para><paramref name="arrayIndex"/> is equal to or greater than the length of <paramref name="array"/>.</para>
            <para>-or-</para>
            <para>The number of elements in the set is greater than the available space from <paramref name="arrayIndex"/> to the end of the destination
            array.</para>
            </exception>
            <remarks>The elements are copied to the <see cref="T:System.Array"/> in the same order in which the enumerator iterates through the
            set.</remarks>
        </member>
        <member name="M:Remotion.Collections.Set`1.System#Collections#ICollection#CopyTo(System.Array,System.Int32)">
            <summary>
            Copies the elements of the <see cref="T:Remotion.Collections.Set`1"/> to an <see cref="T:System.Array"/>, starting at a particular <see cref="T:System.Array"/> index.
            </summary>
            
            <param name="array">The one-dimensional <see cref="T:System.Array"></see> that is the destination of the elements copied.
            The <see cref="T:System.Array"></see> must have zero-based indexing. </param>
            <param name="index">The zero-based index in array at which copying begins. </param>
            <exception cref="T:System.ArgumentNullException">array is null. </exception>
            <exception cref="T:System.ArgumentOutOfRangeException">index is less than zero. </exception>
            <exception cref="T:System.ArgumentException">array is multidimensional. -or- index is equal to or greater than the length of array. -or-
             The number of elements in the <see cref="T:Remotion.Collections.Set`1"/> is greater than the available space from index to the end of the destination array. </exception>
            <exception cref="T:System.InvalidCastException">The type of the <see cref="T:Remotion.Collections.Set`1"/> elements cannot be cast automatically to the type of the
             destination array. </exception><filterpriority>2</filterpriority>
        </member>
        <member name="M:Remotion.Collections.Set`1.ToArray">
            <summary>
            Returns an array holding the items currently stored in the set.
            </summary>
            <returns>An array holding the same items as the set</returns>
            <remarks>The elements are copied to the <see cref="T:System.Array"/> in the same order in which the enumerator iterates through the
            set.</remarks>
        </member>
        <member name="M:Remotion.Collections.Set`1.Remove(`0)">
            <summary>
            Removes the given item from the set, if it is contained.
            </summary>
            <param name="item">The object to remove from the set.</param>
            <returns>
            True if the set contained the item; otherwise, false.
            </returns>
        </member>
        <member name="M:Remotion.Collections.Set`1.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through the collection.
            </summary>
            <returns>
            An <see cref="T:System.Collections.Generic.IEnumerator`1"></see> that can be used to iterate through the collection.
            </returns>
            <remarks>The order in which items are returned by the enumerator is undefined and may change between consecutive calls of
            <see cref="M:Remotion.Collections.Set`1.GetEnumerator"/> if items are added or removed between the calls.</remarks>
        </member>
        <member name="M:Remotion.Collections.Set`1.GetAny">
            <summary>
            Returns an arbitrary element contained in the set without removing it.
            </summary>
            <returns>An arbitrary element contained in the set.</returns>
            <exception cref="T:System.InvalidOperationException">The set is empty.</exception>
        </member>
        <member name="P:Remotion.Collections.Set`1.Count">
            <summary>
            Gets the number of elements contained in the set.
            </summary>
            <returns>The number of elements contained in the set.</returns>
        </member>
        <member name="P:Remotion.Collections.Set`1.System#Collections#ICollection#SyncRoot">
            <summary>
            This method is not supported and always throws an exception.
            </summary>
            <exception cref="T:System.NotSupportedException">The <see cref="T:Remotion.Collections.Set`1"/> collection type does not support SyncRoots.</exception>
        </member>
        <member name="P:Remotion.Collections.Set`1.System#Collections#ICollection#IsSynchronized">
            <summary>
            Gets a value indicating whether access to the collection is synchronized (thread safe). This always returns false.
            </summary>
            <returns>
            Always false.
            </returns>
        </member>
        <member name="T:Remotion.Collections.Tuple">
            <summary>
            Provides static methods for creating tuple objects.
            </summary>
        </member>
        <member name="M:Remotion.Configuration.ConfigurationElementCollection`1.CreateNewElement">
            <summary>When overridden in a derived class, creates a new <see cref="T:System.Configuration.ConfigurationElement"/>.</summary>
            <returns>A new <see cref="T:System.Configuration.ConfigurationElement"/>.</returns>
        </member>
        <member name="M:Remotion.Configuration.ConfigurationElementCollection`1.GetElementKey(System.Configuration.ConfigurationElement)">
            <summary>Gets the element key for a specified configuration element when overridden in a derived class.</summary>
            <param name="element">The <see cref="T:System.Configuration.ConfigurationElement"/> to return the key for. </param>
            <returns>An <see cref="T:System.Object"/> that acts as the key for the specified <see cref="T:System.Configuration.ConfigurationElement"/>.</returns>
        </member>
        <member name="T:Remotion.Configuration.ConfigurationWrapper">
            <summary>Use the <see cref="T:Remotion.Configuration.ConfigurationWrapper"/> to encapsulate the access to the configiration data.</summary>
            <remarks>
            The .NET runtime does not provide an assignable well-known instance for the configuration. The <see cref="T:Remotion.Configuration.ConfigurationWrapper"/> is therefore
            the only option for injecting custom configuration data during design-time or for unit tests.
            </remarks>
        </member>
        <member name="T:Remotion.Configuration.ConfigurationWrapperFromConfigurationObject">
            <summary>
            Concrete implementation of <see cref="T:Remotion.Configuration.ConfigurationWrapper"/> that uses an instance of the <see cref="T:System.Configuration.Configuration"/>
            type. Create the instance by invoking <see cref="M:Remotion.Configuration.ConfigurationWrapper.CreateFromConfigurationObject(System.Configuration.Configuration)"/>.
            </summary>
        </member>
        <member name="T:Remotion.Configuration.ConfigurationWrapperFromConfigurationManager">
            <summary>
            Concrete implementation of <see cref="T:Remotion.Configuration.ConfigurationWrapper"/> that uses the <see cref="T:System.Configuration.ConfigurationManager"/>. Create the instance by
            invoking <see cref="M:Remotion.Configuration.ConfigurationWrapper.CreateFromConfigurationManager"/>.
            </summary>
        </member>
        <member name="T:Remotion.Configuration.ExtendedConfigurationSection">
            <summary>Base class for all configuration sections using the <see cref="T:Remotion.Configuration.ProviderHelperBase"/> to manage their provider sections.</summary>
        </member>
        <member name="T:Remotion.Configuration.ExtendedProviderBase">
            <summary>Base class for all providers.</summary>
            <remarks>
            <see cref="T:Remotion.Configuration.ExtendedProviderBase"/> changes the protocoll for initializing a configuration provider from using a default constructor
            followed by a call to <see cref="M:Remotion.Configuration.ExtendedProviderBase.Initialize(System.String,System.Collections.Specialized.NameValueCollection)"/> to initialize the provider during construction.
            </remarks>
        </member>
        <member name="M:Remotion.Configuration.ExtendedProviderBase.#ctor(System.String,System.Collections.Specialized.NameValueCollection)">
            <summary>Initializes a new instance of the <see cref="T:Remotion.Configuration.ExtendedProviderBase"/>.</summary>
            <param name="name">The friendly name of the provider. Must not be <see langword="null"/> or empty.</param>
            <param name="config">
            A collection of the name/value pairs representing the provider-specific attributes specified in the configuration for this provider.
            Must not be <see langword="null"/>.
            </param>
        </member>
        <member name="M:Remotion.Configuration.ExtendedProviderBase.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the <see cref="T:Remotion.Configuration.ExtendedProviderBase"/> class in the process of deserialization.
            </summary>
            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> provided by the serialization engine.</param>
            <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> provided by the serialization engine.</param>
        </member>
        <member name="M:Remotion.Configuration.ExtendedProviderBase.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Populates a <see cref="T:System.Runtime.Serialization.SerializationInfo"></see> with the data needed to serialize the target object.
            </summary>
            <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"></see> to populate with data.</param>
            <param name="context">The destination (see <see cref="T:System.Runtime.Serialization.StreamingContext"></see>) for this serialization.</param>
            <remarks>Override this method (and call the base implementation) to supply additional data for the serialization process.</remarks>
        </member>
        <member name="T:Remotion.Configuration.ProviderCollection`1">
            <summary>Represents a collection of provider objects that inherit from <typeparamref name="T"/>.</summary>
            <typeparam name="T">The type of elements in the list.</typeparam>
        </member>
        <member name="M:Remotion.Configuration.ProviderCollection`1.#ctor">
            <summary>Initializes a new instance of the <see cref="T:Remotion.Configuration.ProviderCollection`1"/> class.</summary>
        </member>
        <member name="M:Remotion.Configuration.ProviderCollection`1.Add(`0)">
            <summary>Adds a provider to the collection.</summary>
            <param name="provider">The provider to be added.</param>
            <exception cref="T:System.ArgumentException">
            The <see cref="P:System.Configuration.Provider.ProviderBase.Name"/> of <paramref name="provider"/> is <see langword="null"/>.<para>- or -</para>
            The length of the <see cref="P:System.Configuration.Provider.ProviderBase.Name"/> of <paramref name="provider"/> is less than 1.
            </exception>
            <exception cref="T:Remotion.Utilities.ArgumentTypeException">The <paramref name="provider"/> is not derived from <see cref="T:System.Configuration.Provider.ProviderBase"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="provider"/> is null.</exception>
            <exception cref="T:System.NotSupportedException">The collection is read-only.</exception>
        </member>
        <member name="M:Remotion.Configuration.ProviderCollection`1.Add(System.Configuration.Provider.ProviderBase)">
            <summary>Adds a provider to the collection.</summary>
            <param name="provider">The provider to be added.</param>
            <exception cref="T:System.ArgumentException">
            The <see cref="P:System.Configuration.Provider.ProviderBase.Name"/> of <paramref name="provider"/> is <see langword="null"/>.<para>- or -</para>
            The length of the <see cref="P:System.Configuration.Provider.ProviderBase.Name"/> of <paramref name="provider"/> is less than 1.<para>- or -</para>
            </exception>
            <exception cref="T:Remotion.Utilities.ArgumentTypeException">The <paramref name="provider"/> is not assignable to <typeparamref name="T"/>.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="provider"/> is null.</exception>
            <exception cref="T:System.NotSupportedException">The collection is read-only.</exception>
        </member>
        <member name="P:Remotion.Configuration.ProviderCollection`1.Item(System.String)">
            <summary>Gets the provider with the specified name.</summary>
            <param name="name">The key by which the provider is identified.</param>
            <returns>The provider with the specified name.</returns>
        </member>
        <member name="T:Remotion.Configuration.ProviderHelperBase">
            <summary>Abstract base class for <see cref="T:Remotion.Configuration.ProviderHelperBase`1"/>.</summary>
        </member>
        <member name="M:Remotion.Configuration.ProviderHelperBase.InitializeProperties(System.Configuration.ConfigurationPropertyCollection)">
            <summary>Initializes properties and adds them to the given <see cref="T:System.Configuration.ConfigurationPropertyCollection"/>.</summary>
        </member>
        <member name="T:Remotion.Configuration.ProviderHelperBase`1">
            <summary>Base for helper classes that load specific providers from the <see cref="T:System.Configuration.ConfigurationSection"/> section.</summary>
            <remarks>
              <see cref="T:Remotion.Configuration.ProviderHelperBase`1"/> is designed to work with providers deriving from <see cref="T:Remotion.Configuration.ExtendedProviderBase"/> and
              having a constructor with the following signature: <c>public ctor (<see cref="T:System.String"/>, <see cref="T:System.Collections.Specialized.NameValueCollection"/>)</c>.
            </remarks>
        </member>
        <member name="M:Remotion.Configuration.ProviderHelperBase`1.#ctor(Remotion.Configuration.ExtendedConfigurationSection)">
            <summary>
            Initializes a new instance of the <see cref="T:Remotion.Configuration.ProviderHelperBase`1"/> class. 
            </summary>
            <param name="configurationSection">
            The <see cref="T:System.Configuration.ConfigurationSection"/> holding the <see cref="P:Remotion.Configuration.ProviderHelperBase`1.ProviderSettings"/> 
            loaded from the configuration section in the xml file
            </param>
        </member>
        <member name="M:Remotion.Configuration.ProviderHelperBase`1.InitializeProperties(System.Configuration.ConfigurationPropertyCollection)">
            <summary>Initializes properties and adds them to the given <see cref="T:System.Configuration.ConfigurationPropertyCollection"/>.</summary>
        </member>
        <member name="M:Remotion.Configuration.ProviderHelperBase`1.InstantiateProviders(System.Configuration.ProviderSettingsCollection,System.Configuration.Provider.ProviderCollection,System.Type,System.Type[])">
            <summary>Initializes a collection of providers of the given type using the supplied settings.</summary>
            <param name="providerSettingsCollection">A collection of settings to be passed to the provider upon initialization.</param>
            <param name="providerCollection">The collection used to contain the initialized providers after the method returns.</param>
            <param name="providerType">The <see cref="T:System.Type"/> of the providers to be initialized.</param>
            <param name="providerInterfaces">The list of interfaces each provider must implement.</param>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="providerSettingsCollection"/> is null.<para>- or -</para>
            <paramref name="providerCollection"/> is null.<para>- or -</para>
            <paramref name="providerType"/> is null.
            </exception>
        </member>
        <member name="M:Remotion.Configuration.ProviderHelperBase`1.InstantiateProvider(System.Configuration.ProviderSettings,System.Type,System.Type[])">
            <summary>Initializes and returns a single provider of the given type using the supplied settings.</summary>
            <param name="providerSettings">The settings to be passed to the provider upon initialization.</param>
            <param name="providerType">The <see cref="T:System.Type"/> of the providers to be initialized.</param>
            <param name="providerInterfaces">The list of interfaces each provider must implement.</param>
            <returns>A new provider of the given type using the supplied settings.</returns>
            <exception cref="T:System.ArgumentNullException">
            <paramref name="providerSettings"/> is null.<para>- or -</para>
            <paramref name="providerType"/> is null.
            </exception>
            <exception cref="T:System.Configuration.ConfigurationErrorsException">
            The provider threw an exception while it was being initialized.<para>- or -</para>
            An error occurred while attempting to resolve a <see cref="T:System.Type"/> instance for the provider specified in <paramref name="providerSettings"/>.
            </exception>    
        </member>
        <member name="P:Remotion.Configuration.ProviderHelperBase`1.Provider">
            <summary>Get and set the provider.</summary>
        </member>
        <member name="T:Remotion.Design.DesignModeHelperBase">
            <summary>
            Base implementation of the <see cref="T:Remotion.Design.IDesignModeHelper"/> interface.
            </summary>
        </member>
        <member name="T:Remotion.Design.EnvDteDesignModeHelper">
            <summary>
            Implementation of the <see cref="T:Remotion.Design.IDesignModeHelper"/> interface for the <b>EnvDTE</b> (i.e. Visual Studio) designer.
            </summary>
            <remarks>
            <see cref="M:Remotion.Design.EnvDteDesignModeHelper.GetConfiguration"/> is hard coded to look up a configuration file named <c>app.config</c>.
            </remarks>
        </member>
        <member name="T:Remotion.DoubleCheckedLockingContainer`1">
            <summary>Provides a standard implementation of the double checked locking pattern.</summary>
            <typeparam name="T">The type encapsulated by the <see cref="T:Remotion.DoubleCheckedLockingContainer`1"/>.</typeparam>
            <remarks>Initialize the container during the construction of the parent object and assign the value using the <see cref="P:Remotion.DoubleCheckedLockingContainer`1.Value"/> property.</remarks>
            <threadsafety static="true" instance="true"/>
        </member>
        <member name="M:Remotion.DoubleCheckedLockingContainer`1.#ctor(System.Func{`0})">
            <summary>Initializes a new instance of the <see cref="T:Remotion.DoubleCheckedLockingContainer`1"/> type.</summary>
            <param name="defaultFactory">The delegate used to create the default value in case the value is <see langword="null"/>.</param>
        </member>
        <member name="P:Remotion.DoubleCheckedLockingContainer`1.HasValue">
            <summary>
            Gets a value indicating whether this instance has already gotten a value.
            </summary>
            <value>true if this instance has a value; otherwise, false.</value>
        </member>
        <member name="P:Remotion.DoubleCheckedLockingContainer`1.Value">
            <summary>Gets or sets the object encapsulated by the <see cref="T:Remotion.DoubleCheckedLockingContainer`1"/>.</summary>
            <value>
            The object assigned via the set accessor<br/>or,<br/>
            if the value is <see langword="null"/>, the object created by the <b>defaultFactory</b> assigned during the initialization of the container.
            </value>
        </member>
        <member name="M:Remotion.Globalization.IResourceManagerResolverUtility.GetResourceText``1(Remotion.Globalization.ResourceManagerResolver{``0},System.Type,System.String)">
            <summary>
              Loads a string resource for a given type, identified by ID.
            </summary>
            <param name="resolver">The resolver to use.</param>
            <param name="objectTypeToGetResourceFor">
              The type for which to get the resource.
            </param>
            <param name="name"> The ID of the resource. </param>
            <returns> The found string resource or an empty string. </returns>
        </member>
        <member name="M:Remotion.Globalization.IResourceManagerResolverUtility.ExistsResourceText``1(Remotion.Globalization.ResourceManagerResolver{``0},System.Type,System.String)">
            <summary>
              Checks for the existence of a string resource for the specified type, identified by ID.
            </summary>
            <param name="resolver">The resolver to use.</param>
            <param name="objectTypeToGetResourceFor">
              The <see cref="T:System.Type"/> for which to check the resource.
            </param>
            <param name="name"> The ID of the resource. </param>
            <returns> <see langword="true"/> if the resource can be found. </returns>
        </member>
        <member name="M:Remotion.Globalization.IResourceManagerResolverUtility.ExistsResource``1(Remotion.Globalization.ResourceManagerResolver{``0},System.Type)">
            <summary>
              Checks for the existence of a resource set for the specified type.
            </summary>
            <param name="resolver">The resolver to use.</param>
            <param name="objectTypeToGetResourceFor">
              The <see cref="T:System.Type"/> for which to check for the resource set.
            </param>
            <returns> <see langword="true"/> if the resource ser can be found. </returns>
        </member>
        <member name="P:Remotion.Globalization.IResourcesAttribute.BaseName">
            <summary>
              Gets the base name of the resource container as specified by the attributes construction.
            </summary>
            <remarks>
            The base name of the resource conantainer to be used by this type
            (&lt;assembly&gt;.&lt;path inside project&gt;.&lt;resource file name without extension&gt;).
            </remarks>
        </member>
        <member name="T:Remotion.Globalization.MultiLingualResources">
            <summary>
            Provides the public API for classes working with and analyzing instances of <see cref="T:Remotion.Globalization.MultiLingualResourcesAttribute"/>.
            </summary>
        </member>
        <member name="M:Remotion.Globalization.MultiLingualResources.GetResourceManager(System.Type,System.Boolean)">
            <summary>
              Returns an instance of <c>IResourceManager</c> for the resource container specified
              in the class declaration of the type.
            </summary>
            <remarks>
        ResourceManagerWrappers are cached after their first initalization.
      </remarks><returns>
        The <c>ResourceManagerWrapper</c> containing the type's resource containers.
      </returns>
            <param name="objectType">
      The type for which the resource manager is wanted.
    </param><param name="includeHierarchy">
      Include the resource managers for the base types.
    </param>
        </member>
        <member name="M:Remotion.Globalization.MultiLingualResources.GetResourceManager(System.Type)">
            <summary>
              Returns an instance of <c>IResourceManager</c> for the resource container specified
              in the class declaration of the type.
            </summary>
            <remarks>
        ResourceManagerWrappers are cached after their first initalization.
      </remarks><returns>
        The <c>ResourceManagerWrapper</c> containing the type's resource containers.
      </returns>
            <param name="objectType">
      The type for which the resource manager is wanted.
    </param>
        </member>
        <member name="M:Remotion.Globalization.MultiLingualResources.GetResourceText(System.Type,System.String)">
            <summary>
              Loads a string resource for the specified type, identified by ID.
            </summary>
            <param name="objectTypeToGetResourceFor">
              The <see cref="T:System.Type"/> for which to get the resource.
            </param>
            <param name="name"> The ID of the resource. </param>
            <returns> The found string resource or an empty string. </returns>
        </member>
        <member name="M:Remotion.Globalization.MultiLingualResources.GetResourceText(System.Object,System.String)">
            <summary>
              Loads a string resource for the object's type, identified by ID.
            </summary>
            <param name="objectToGetResourceFor">
              The object for whose <see cref="T:System.Type"/> to get the resource.
            </param>
            <param name="name"> The ID of the resource. </param>
            <returns> The found string resource or an empty string. </returns>
        </member>
        <member name="M:Remotion.Globalization.MultiLingualResources.ExistsResourceText(System.Type,System.String)">
            <summary>
              Checks for the existence of a string resource for the specified type, identified by ID.
            </summary>
            <param name="objectTypeToGetResourceFor">
              The <see cref="T:System.Type"/> for which to check the resource.
            </param>
            <param name="name"> The ID of the resource. </param>
            <returns> <see langword="true"/> if the resource can be found. </returns>
        </member>
        <member name="M:Remotion.Globalization.MultiLingualResources.ExistsResourceText(System.Object,System.String)">
            <summary>
              Checks for the existence of a string resource for the specified type, identified by ID.
            </summary>
            <param name="objectToGetResourceFor">
              The object for whose <see cref="T:System.Type"/> to check the resource.
            </param>
            <param name="name"> The ID of the resource. </param>
            <returns> <see langword="true"/> if the resource can be found. </returns>
        </member>
        <member name="M:Remotion.Globalization.MultiLingualResources.ExistsResource(System.Type)">
            <summary>
              Checks for the existence of a resource set for the specified type.
            </summary>
            <param name="objectTypeToGetResourceFor">
              The <see cref="T:System.Type"/> for which to check for the resource set.
            </param>
            <returns> <see langword="true"/> if the resource ser can be found. </returns>
        </member>
        <member name="M:Remotion.Globalization.MultiLingualResources.ExistsResource(System.Object)">
            <summary>
              Checks for the existence of a resource set for the specified object.
            </summary>
            <param name="objectToGetResourceFor">
              The object for whose <see cref="T:System.Type"/> to check for the resource set.
            </param>
            <returns> <see langword="true"/> if the resource ser can be found. </returns>
        </member>
        <member name="P:Remotion.Globalization.MultiLingualResources.Resolver">
            <summary>
            Gets the resolver object used by the methods of this class.
            </summary>
            <value>The resolver object used by <see cref="T:Remotion.Globalization.MultiLingualResources"/>.</value>
        </member>
        <member name="T:Remotion.Globalization.ResourceManagerResolver`1">
            <summary>
            Provides a generalized implementation of the algorithms used to translate resource attributes into <see cref="T:Remotion.Globalization.IResourceManager"/> instances.
            </summary>
            <typeparam name="TAttribute">The type of the resource attribute to be resolved by this class.</typeparam>
        </member>
        <member name="M:Remotion.Globalization.ResourceManagerResolver`1.GetResourceManager(System.Type,System.Boolean)">
            <summary>
              Returns an instance of <c>IResourceManager</c> for the resource container specified
              in the class declaration of the type.
            </summary>
            <remarks>
        ResourceManagerWrappers are cached after their first initalization.
      </remarks><returns>
        The <c>ResourceManagerWrapper</c> containing the type's resource containers.
      </returns>
            <param name="objectType">
      The type for which the resource manager is wanted.
    </param><param name="includeHierarchy">
      Include the resource managers for the base types.
    </param>
        </member>
        <member name="M:Remotion.Globalization.ResourceManagerResolver`1.GetResourceManager(System.Type,System.Boolean,System.Type@)">
            <summary>
              Returns a <c>IResourceManager</c> set for the resource containers specified
              in the class declaration of the type, throwing an exception if no resources can be found.
            </summary>
            <remarks>
        ResourceManagerWrappers are cached after their first initalization.
      </remarks><returns>
        The <c>ResourceManagerWrapper</c> containing the type's resource containers.
      </returns>
            <param name="objectType">
      The type for which the resource manager is wanted.
    </param><param name="includeHierarchy">
      Include the resource managers for the base types.
    </param><param name="definingType">
      The base type where the <c>MultiLingualResourcesAttribute</c> was defined.
    </param>
        </member>
        <member name="M:Remotion.Globalization.ResourceManagerResolver`1.GetResourceManagerCacheEntry(System.Type,System.Boolean)">
            <summary>
            Tries to get a <see cref="T:Remotion.Globalization.IResourceManager"/> for the given <paramref name="objectType"/> (see 
            <see cref="M:Remotion.Globalization.ResourceManagerResolver`1.GetResourceManager(System.Type,System.Boolean,System.Type@)"/>), returning <see langword="null"/> if the type has no resources defined. 
            The <see cref="T:Remotion.Globalization.IResourceManager"/> is retrieved from the cache if possible; if not, a new <see cref="T:Remotion.Globalization.IResourceManager"/> is created and added
            to the cache.
            </summary>
            <param name="objectType">The type to get an <see cref="T:Remotion.Globalization.IResourceManager"/> for.</param>
            <param name="includeHierarchy">Determines whether to include all resources defined in the <paramref name="objectType"/>'s hierarchy. If
            set to <see langword="false"/>, only those of the first type with resources in the hierarchy are included.</param>
            <returns>
            A <see cref="T:Remotion.Globalization.ResourceManagerCacheEntry"/> object for the given <paramref name="objectType"/>. The object is 
            <see cref="F:Remotion.Globalization.ResourceManagerCacheEntry.Empty"/> if no resources could be found.
            </returns>
        </member>
        <member name="T:Remotion.Globalization.ResourceManagerResolverUtility">
            <summary>
            Encapsulates the algorithms used to access resource containers defined by resource attributes.
            </summary>
            <remarks>
            This class is an attribute type-agnostic encapsulation of the algorithms used by <see cref="T:Remotion.Globalization.MultiLingualResources"/>.
            </remarks>
        </member>
        <member name="M:Remotion.Globalization.ResourceManagerResolverUtility.GetResourceText``1(Remotion.Globalization.ResourceManagerResolver{``0},System.Type,System.String)">
            <summary>
              Loads a string resource for a given type, identified by ID.
            </summary>
            <param name="resolver">The resolver to use.</param>
            <param name="objectTypeToGetResourceFor">
              The type for which to get the resource.
            </param>
            <param name="name"> The ID of the resource. </param>
            <returns> The found string resource or an empty string. </returns>
        </member>
        <member name="M:Remotion.Globalization.ResourceManagerResolverUtility.ExistsResourceText``1(Remotion.Globalization.ResourceManagerResolver{``0},System.Type,System.String)">
            <summary>
              Checks for the existence of a string resource for the specified type, identified by ID.
            </summary>
            <param name="resolver">The resolver to use.</param>
            <param name="objectTypeToGetResourceFor">
              The <see cref="T:System.Type"/> for which to check the resource.
            </param>
            <param name="name"> The ID of the resource. </param>
            <returns> <see langword="true"/> if the resource can be found. </returns>
        </member>
        <member name="M:Remotion.Globalization.ResourceManagerResolverUtility.ExistsResource``1(Remotion.Globalization.ResourceManagerResolver{``0},System.Type)">
            <summary>
              Checks for the existence of a resource set for the specified type.
            </summary>
            <param name="resolver">The resolver to use.</param>
            <param name="objectTypeToGetResourceFor">
              The <see cref="T:System.Type"/> for which to check for the resource set.
            </param>
            <returns> <see langword="true"/> if the resource ser can be found. </returns>
        </member>
        <member name="T:Remotion.Collections.ArrayComparer`1">
            <summary>
            Provides equality and hash codes for arrays. Use <see cref="M:Remotion.Collections.ArrayComparer`1.GetComparer"/> to get an instance.
            </summary>
        </member>
        <member name="T:Remotion.Logging.Log4NetLog">
            <summary>
            Implementation of interface <see cref="T:Remotion.Logging.ILog"/> for <b>log4net</b>.
            </summary>
            <remarks>
            Use <see cref="T:Remotion.Logging.LogManager"/> to instantiate <see cref="T:Remotion.Logging.Log4NetLog"/> via <see cref="M:Remotion.Logging.LogManager.GetLogger(System.String)"/>.
            <note type="warning">
            <see cref="T:Remotion.Logging.Log4NetLog"/> does not allow event ids outside the range of unsigned 16-bit integers (0 - 65535) and will throw an
            <see cref="T:System.ArgumentOutOfRangeException"/> if an event id outside this range is encountered. The original message will be logged using a 
            truncated event id before the exception is thrown.
            </note>
            </remarks>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.Convert(Remotion.Logging.LogLevel)">
            <summary>
            Converts <see cref="T:Remotion.Logging.LogLevel"/> to <see cref="T:log4net.Core.Level"/>.
            </summary>
            <param name="logLevel">The <see cref="T:Remotion.Logging.LogLevel"/> to be converted.</param>
            <returns>Corresponding <see cref="T:log4net.Core.Level"/> needed for logging to the <b>log4net </b> <see cref="T:log4net.ILog"/> interface.</returns>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.#ctor(log4net.Core.ILogger)">
            <summary>
            Initializes a new instance of the <see cref="T:Remotion.Logging.Log4NetLog"/> class 
            using the specified <see cref="T:log4net.Core.ILogger"/>.
            </summary>
            <param name="logger">The <see cref="T:log4net.Core.ILogger"/> the log messages are written to.</param>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.Log(Remotion.Logging.LogLevel,System.Int32,System.Object,System.Exception)">
            <overloads><inheritdoc cref="M:Remotion.Logging.ILog.Log(Remotion.Logging.LogLevel,System.Object)"/></overloads>
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="eventID"/> is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.Log(Remotion.Logging.LogLevel,System.Int32,System.Object)">
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="eventID"/> is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.Log(Remotion.Logging.LogLevel,System.Object,System.Exception)">
            <inheritdoc />
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.Log(Remotion.Logging.LogLevel,System.Object)">
            <inheritdoc />
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.LogFormat(Remotion.Logging.LogLevel,System.Int32,System.Exception,System.String,System.Object[])">
            <overloads><inheritdoc cref="M:Remotion.Logging.ILog.LogFormat(Remotion.Logging.LogLevel,System.String,System.Object[])"/></overloads>
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="eventID"/> is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.LogFormat(Remotion.Logging.LogLevel,System.Int32,System.String,System.Object[])">
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="eventID"/> is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.LogFormat(Remotion.Logging.LogLevel,System.String,System.Object[])">
            <inheritdoc />
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.LogFormat(Remotion.Logging.LogLevel,System.Exception,System.String,System.Object[])">
            <inheritdoc />
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.LogFormat(Remotion.Logging.LogLevel,System.Enum,System.Exception,System.Object[])">
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="messageEnum"/>'s underlying value is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.LogFormat(Remotion.Logging.LogLevel,System.Enum,System.Object[])">
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="messageEnum"/>'s underlying value is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.Debug(System.Int32,System.Object,System.Exception)">
            <overloads><inheritdoc cref="M:Remotion.Logging.ILog.Debug(System.Object)"/></overloads>
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="eventID"/> is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.Debug(System.Int32,System.Object)">
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="eventID"/> is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.DebugFormat(System.Int32,System.Exception,System.String,System.Object[])">
            <overloads><inheritdoc cref="M:Remotion.Logging.ILog.DebugFormat(System.String,System.Object[])"/></overloads>
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="eventID"/> is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.DebugFormat(System.Int32,System.String,System.Object[])">
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="eventID"/> is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.DebugFormat(System.Exception,System.String,System.Object[])">
            <inheritdoc />
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.DebugFormat(System.Enum,System.Exception,System.Object[])">
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="messageEnum"/>'s underlying value is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.DebugFormat(System.Enum,System.Object[])">
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="messageEnum"/>'s underlying value is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.Info(System.Int32,System.Object,System.Exception)">
            <overloads><inheritdoc cref="M:Remotion.Logging.ILog.Info(System.Object)"/></overloads>
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="eventID"/> is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.Info(System.Int32,System.Object)">
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="eventID"/> is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.InfoFormat(System.Int32,System.Exception,System.String,System.Object[])">
            <overloads><inheritdoc cref="M:Remotion.Logging.ILog.InfoFormat(System.String,System.Object[])"/></overloads>
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="eventID"/> is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.InfoFormat(System.Int32,System.String,System.Object[])">
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="eventID"/> is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.InfoFormat(System.Exception,System.String,System.Object[])">
            <inheritdoc />
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.InfoFormat(System.Enum,System.Exception,System.Object[])">
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="messageEnum"/>'s underlying value is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.InfoFormat(System.Enum,System.Object[])">
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="messageEnum"/>'s underlying value is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.Warn(System.Int32,System.Object,System.Exception)">
            <overloads><inheritdoc cref="M:Remotion.Logging.ILog.Warn(System.Object)"/></overloads>
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="eventID"/> is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.Warn(System.Int32,System.Object)">
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="eventID"/> is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.WarnFormat(System.Int32,System.Exception,System.String,System.Object[])">
            <overloads><inheritdoc cref="M:Remotion.Logging.ILog.WarnFormat(System.String,System.Object[])"/></overloads>
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="eventID"/> is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.WarnFormat(System.Int32,System.String,System.Object[])">
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="eventID"/> is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.WarnFormat(System.Exception,System.String,System.Object[])">
            <inheritdoc />
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.WarnFormat(System.Enum,System.Exception,System.Object[])">
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="messageEnum"/>'s underlying value is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.WarnFormat(System.Enum,System.Object[])">
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="messageEnum"/>'s underlying value is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.Error(System.Int32,System.Object,System.Exception)">
            <overloads><inheritdoc cref="M:Remotion.Logging.ILog.Error(System.Object)"/></overloads>
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="eventID"/> is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.Error(System.Int32,System.Object)">
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="eventID"/> is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.ErrorFormat(System.Int32,System.Exception,System.String,System.Object[])">
            <overloads><inheritdoc cref="M:Remotion.Logging.ILog.ErrorFormat(System.String,System.Object[])"/></overloads>
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="eventID"/> is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.ErrorFormat(System.Int32,System.String,System.Object[])">
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="eventID"/> is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.ErrorFormat(System.Exception,System.String,System.Object[])">
            <inheritdoc />
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.ErrorFormat(System.Enum,System.Exception,System.Object[])">
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="messageEnum"/>'s underlying value is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.ErrorFormat(System.Enum,System.Object[])">
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="messageEnum"/>'s underlying value is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.Fatal(System.Int32,System.Object,System.Exception)">
            <overloads><inheritdoc cref="M:Remotion.Logging.ILog.Fatal(System.Object)"/></overloads>
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="eventID"/> is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.Fatal(System.Int32,System.Object)">
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="eventID"/> is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.FatalFormat(System.Int32,System.Exception,System.String,System.Object[])">
            <overloads><inheritdoc cref="M:Remotion.Logging.ILog.FatalFormat(System.String,System.Object[])"/></overloads>
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="eventID"/> is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.FatalFormat(System.Int32,System.String,System.Object[])">
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="eventID"/> is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.FatalFormat(System.Exception,System.String,System.Object[])">
            <inheritdoc />
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.FatalFormat(System.Enum,System.Exception,System.Object[])">
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="messageEnum"/>'s underlying value is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.FatalFormat(System.Enum,System.Object[])">
            <inheritdoc/>
            <exception cref="T:System.ArgumentOutOfRangeException">Thrown if the <paramref name="messageEnum"/>'s underlying value is outside the range of an unsigned 16-bit integer. </exception>
        </member>
        <member name="M:Remotion.Logging.Log4NetLog.IsEnabled(Remotion.Logging.LogLevel)">
            <inheritdoc />
        </member>
        <member name="T:Remotion.Logging.Log4NetLogManager">
            <summary>
            Implementation of <see cref="T:Remotion.Logging.ILogManager"/> for <b>log4net</b>.
            </summary>
        </member>
        <member name="M:Remotion.Logging.Log4NetLogManager.GetLogger(System.String)">
            <summary>
            Creates a new instance of the <see cref="T:Remotion.Logging.Log4NetLog"/> type.
            </summary>
            <param name="name">The name of the logger to retrieve. Must not be <see langword="null"/> or empty.</param>
            <returns>A <see cref="T:Remotion.Logging.Log4NetLog"/> for the <paramref name="name"/> specified.</returns>
        </member>
        <member name="M:Remotion.Logging.Log4NetLogManager.GetLogger(System.Type)">
            <summary>
            Creates a new instance of the <see cref="T:Remotion.Logging.Log4NetLog"/> type.
            </summary>
            <param name="type">The full name of <paramref name="type"/> will be used as the name of the logger to retrieve. Must not be <see langword="null"/>.</param>
            <returns>A <see cref="T:Remotion.Logging.Log4NetLog"/> for the fully qualified name of the <paramref name="type"/> specified.</returns>
        </member>
        <member name="M:Remotion.Logging.Log4NetLogManager.Initialize">
            <summary>
            Initializes <b>log4net</b> by invoking <see cref="M:log4net.Config.XmlConfigurator.Configure"/>.
            </summary>
        </member>
        <member name="T:Remotion.Logging.Log4NetTraceListener">
            <summary>
            A <see cref="T:System.Diagnostics.TraceListener"/> that directs tracing or debugging output to <b>log4net</b>.
            </summary>
            <remarks>See <see cref="T:System.Diagnostics.TraceSource"/> for information on how to configure a <see cref="T:System.Diagnostics.TraceListener"/>.</remarks>
        </member>
        <member name="M:Remotion.Logging.Log4NetTraceListener.Convert(System.Diagnostics.TraceEventType)">
            <summary>
            Converts <see cref="T:System.Diagnostics.TraceEventType"/> to <see cref="T:Remotion.Logging.LogLevel"/>.
            </summary>
            <param name="eventType">The <see cref="T:System.Diagnostics.TraceEventType"/> to be converted.</param>
            <returns>Corresponding <see cref="T:Remotion.Logging.LogLevel"/> needed when logging through the <see cref="T:Remotion.Logging.ILog"/> interface.</returns>
        </member>
        <member name="M:Remotion.Logging.Log4NetTraceListener.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:Remotion.Logging.Log4NetTraceListener"/> class. 
            </summary>
        </member>
        <member name="M:Remotion.Logging.Log4NetTraceListener.#ctor(System.String)">
            <summary>
            Initializes a new instance of the <see cref="T:Remotion.Logging.Log4NetTraceListener"/> class using the specified name. 
            </summary>
            <param name="name">
      The name of the <see cref="T:Remotion.Logging.Log4NetTraceListener"/>.
    </param>
        </member>
        <member name="M:Remotion.Logging.Log4NetTraceListener.Write(System.String)">
            <overloads>Writes a message to the <b>log4net</b> log. </overloads>
            <summary>
            Writes a message to the <b>log4net</b> log. 
            </summary>
            <param name="message">A message to write.</param>
            <remarks>
            <see cref="M:Remotion.Logging.Log4NetTraceListener.Write(System.String)"/> does not use <see cref="T:System.Diagnostics.TraceFilter"/>, even though the inherited overloads
            use it; this follows the behavior of the standard <see cref="T:System.Diagnostics.TraceListener"/> implementations like 
            <see cref="T:System.Diagnostics.EventLogTraceListener"/> and <see cref="T:System.Diagnostics.TextWriterTraceListener"/>; 
            this behavior is not explicitely documented for the classes of System.Diagnostics.
            </remarks>
        </member>
        <member name="M:Remotion.Logging.Log4NetTraceListener.WriteLine(System.String)">
            <overloads>Writes a message to the <b>log4net</b> log. </overloads>
            <summary>
            Writes a message to the <b>log4net</b> log. 
            </summary>
            <param name="message">A message to write.</param>
            <remarks>
            <see cref="M:Remotion.Logging.Log4NetTraceListener.WriteLine(System.String)"/> has identical behavior to <see cref="M:Remotion.Logging.Log4NetTraceListener.Write(System.String)"/>.
            </remarks>
        </member>
        <member name="M:Remotion.Logging.Log4NetTraceListener.TraceEvent(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32)">
            <overloads>Writes trace and event information to the <b>log4net</b> log.</overloads>
            <summary>
            Writes trace and event information to the <b>log4net</b> log.
            </summary>
            <param name="eventCache">A <see cref="T:System.Diagnostics.TraceEventCache"/> object that contains the current process ID, thread ID, and stack trace information.</param><param name="source">A name used to identify the output, typically the name of the application that generated the trace event.</param><param name="eventType">One of the <see cref="T:System.Diagnostics.TraceEventType"/> values specifying the type of event that has caused the trace.</param><param name="id">A numeric identifier for the event.</param>
            <remarks>The <paramref name="eventCache"/> parameter is not logged, since <b>log4net</b> features can provide the same information.
      As such <see cref="P:System.Diagnostics.TraceListener.TraceOutputOptions"/> is not relevant, too. 
      When using a <see cref="T:System.Diagnostics.TraceFilter"/>, <paramref name="eventCache"/> can be used the normal way. 
    </remarks>
        </member>
        <member name="M:Remotion.Logging.Log4NetTraceListener.TraceEvent(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.String)">
            <summary>
            Writes trace information, a message, and event information to the <b>log4net</b> log.
            </summary>
            <param name="eventCache">A <see cref="T:System.Diagnostics.TraceEventCache"/> object that contains the current process ID, thread ID, and stack trace information.</param><param name="source">A name used to identify the output, typically the name of the application that generated the trace event.</param><param name="eventType">One of the <see cref="T:System.Diagnostics.TraceEventType"/> values specifying the type of event that has caused the trace.</param><param name="id">A numeric identifier for the event.</param><param name="message">A message to write.</param>
            <remarks>The <paramref name="eventCache"/> parameter is not logged, since <b>log4net</b> features can provide the same information.
      As such <see cref="P:System.Diagnostics.TraceListener.TraceOutputOptions"/> is not relevant, too. 
      When using a <see cref="T:System.Diagnostics.TraceFilter"/>, <paramref name="eventCache"/> can be used the normal way. 
    </remarks>
        </member>
        <member name="M:Remotion.Logging.Log4NetTraceListener.TraceEvent(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.String,System.Object[])">
            <summary>
            Writes trace information, a formatted array of objects and event information to the <b>log4net</b> log.
            </summary>
            <param name="eventCache">A <see cref="T:System.Diagnostics.TraceEventCache"/> object that contains the current process ID, thread ID, and stack trace information.</param><param name="source">A name used to identify the output, typically the name of the application that generated the trace event.</param><param name="eventType">One of the <see cref="T:System.Diagnostics.TraceEventType"/> values specifying the type of event that has caused the trace.</param><param name="id">A numeric identifier for the event.</param>
            <param name="format">A format string that contains zero or more format items, which correspond to objects in the args array.</param><param name="args">An object array containing zero or more objects to format.</param>
            <remarks>The <paramref name="eventCache"/> parameter is not logged, since <b>log4net</b> features can provide the same information.
      As such <see cref="P:System.Diagnostics.TraceListener.TraceOutputOptions"/> is not relevant, too. 
      When using a <see cref="T:System.Diagnostics.TraceFilter"/>, <paramref name="eventCache"/> can be used the normal way. 
    </remarks>
        </member>
        <member name="M:Remotion.Logging.Log4NetTraceListener.TraceData(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.Object)">
            <overloads>Writes trace data to the <b>log4net</b> log. </overloads>
            <summary>
            Writes trace information, a data object and event information to the <b>log4net</b> log.
            </summary>
            <param name="eventCache">A <see cref="T:System.Diagnostics.TraceEventCache"/> object that contains the current process ID, thread ID, and stack trace information.</param><param name="source">A name used to identify the output, typically the name of the application that generated the trace event.</param><param name="eventType">One of the <see cref="T:System.Diagnostics.TraceEventType"/> values specifying the type of event that has caused the trace.</param><param name="id">A numeric identifier for the event.</param>
            <param name="data">The trace data to emit.</param>
            <remarks>The <paramref name="eventCache"/> parameter is not logged, since <b>log4net</b> features can provide the same information.
      As such <see cref="P:System.Diagnostics.TraceListener.TraceOutputOptions"/> is not relevant, too. 
      When using a <see cref="T:System.Diagnostics.TraceFilter"/>, <paramref name="eventCache"/> can be used the normal way. 
    </remarks>
        </member>
        <member name="M:Remotion.Logging.Log4NetTraceListener.TraceData(System.Diagnostics.TraceEventCache,System.String,System.Diagnostics.TraceEventType,System.Int32,System.Object[])">
            <summary>
            Writes trace information, an array of data objects and event information to the <b>log4net</b> log.
            </summary>
            <param name="eventCache">A <see cref="T:System.Diagnostics.TraceEventCache"/> object that contains the current process ID, thread ID, and stack trace information.</param><param name="source">A name used to identify the output, typically the name of the application that generated the trace event.</param><param name="eventType">One of the <see cref="T:System.Diagnostics.TraceEventType"/> values specifying the type of event that has caused the trace.</param><param name="id">A numeric identifier for the event.</param>
            <param name="data">An array of objects to emit as data.</param>
            <remarks>The <paramref name="eventCache"/> parameter is not logged, since <b>log4net</b> features can provide the same information.
      As such <see cref="P:System.Diagnostics.TraceListener.TraceOutputOptions"/> is not relevant, too. 
      When using a <see cref="T:System.Diagnostics.TraceFilter"/>, <paramref name="eventCache"/> can be used the normal way. 
    </remarks>
        </member>
        <member name="M:Remotion.Logging.Log4NetTraceListener.TraceTransfer(System.Diagnostics.TraceEventCache,System.String,System.Int32,System.String,System.Guid)">
            <summary>
            Writes trace information, a message, a related activity identity and event information to the <b>log4net</b> log.
            </summary>
            <param name="eventCache">A <see cref="T:System.Diagnostics.TraceEventCache"/> object that contains the current process ID, thread ID, and stack trace information.</param><param name="source">A name used to identify the output, typically the name of the application that generated the trace event.</param><param name="id">A numeric identifier for the event.</param><param name="message">A message to write.</param>
            <param name="relatedActivityId">A <see cref="T:System.Guid"/> object identifying a related activity.</param>
            <remarks>The <paramref name="eventCache"/> parameter is not logged, since <b>log4net</b> features can provide the same information.
      As such <see cref="P:System.Diagnostics.TraceListener.TraceOutputOptions"/> is not relevant, too. 
      When using a <see cref="T:System.Diagnostics.TraceFilter"/>, <paramref name="eventCache"/> can be used the normal way. 
    </remarks>
        </member>
        <member name="T:Remotion.Collections.AutoInitHashtable">
            <summary>
              A hashtable that automatically creates new value objects when queried for a specific key.
            </summary>
            <remarks>
            	This collection cannot be modified using <see cref="M:System.Collections.Hashtable.Add(System.Object,System.Object)"/> and setting values through the indexer. Getting values through the indexer
            	will assign a new object to the specified key if none exists.
            </remarks>
        </member>
        <member name="T:Remotion.Collections.NullCache`2">
            <summary>
            This class implements a cache that does not actually cache anything.
            </summary>
            <remarks>
            Use NullCache objects if some code expects an <see cref="T:Remotion.Collections.ICache`2"/> interface, but you don't actually want to use caching.
            </remarks>
        </member>
        <member name="T:Remotion.Collections.NameObjectCollection">
            <summary>
            Case-sensitive name/object dictionary.
            </summary>
        </member>
        <member name="M:Remotion.Collections.NameObjectCollection.Merge(Remotion.Collections.NameObjectCollection,Remotion.Collections.NameObjectCollection)">
            <summary>
            Merges two collections. If a key occurs in both collections, the value of the second collection is taken.
            </summary>
        </member>
        <member name="T:Remotion.Collections.Tuple`2">
            <summary>
            Represents a 2-tuple, or pair.
            </summary>
            <typeparam name="T1">The type of the tuple's first component.</typeparam>
            <typeparam name="T2">The type of the tuple's second component.</typeparam>
        </member>
        <member name="T:Remotion.Collections.Tuple`3">
            <summary>
            Represents a 3-tuple, or triple.
            </summary>
            <typeparam name="T1">The type of the tuple's first component.</typeparam>
            <typeparam name="T2">The type of the tuple's second component.</typeparam>
            <typeparam name="T3">The type of the tuple's third component.</typeparam>
        </member>
        <member name="T:Remotion.Collections.Tuple`4">
            <summary>
            Represents a 4-tuple, or quadruple.
            </summary>
            <typeparam name="T1">The type of the tuple's first component.</typeparam>
            <typeparam name="T2">The type of the tuple's second component.</typeparam>
            <typeparam name="T3">The type of the tuple's third component.</typeparam>
            <typeparam name="T4">The type of the tuple's fourth component.</typeparam>
        </member>
        <member name="T:Remotion.DisposableExplicitBase">
            <summary>
            This class can be used as a base class for any class that needs to implement <see cref="T:System.IDisposable"/>, but does not want to 
            expose a public <c>Dispose</c> method.
            <see cref="T:Remotion.DisposableBase"/>
            </summary>
        </member>
        <member name="T:Remotion.DisposableBase">
            <summary>
            This class can be used as a base class for any class that needs to implement <see cref="T:System.IDisposable"/>.
            <see cref="T:Remotion.DisposableExplicitBase"/>
            </summary>
        </member>
        <member name="T:Remotion.Globalization.IObjectWithResources">
            <summary>
              A class whose instances know where their resource container is.
            </summary>
            <remarks>
              Used to externally controll resource management.
            </remarks>
        </member>
        <member name="M:Remotion.Globalization.IObjectWithResources.GetResourceManager">
            <summary>
              Returns an instance of <c>IResourceManager</c> for resource container of the object.
            </summary>
        </member>
        <member name="T:Remotion.Globalization.IResourceManager">
            <summary>
              An interface for defining a string resource manager.
            </summary>
        </member>
        <member name="M:Remotion.Globalization.IResourceManager.GetAllStrings">
            <summary>
              Returns all string resources inside the resource manager.
            </summary>
            <returns>
              A collection of string pairs, the key being the resource's ID, the value being the string.
            </returns>
        </member>
        <member name="M:Remotion.Globalization.IResourceManager.GetAllStrings(System.String)">
            <summary>
              Searches for all string resources inside the resource manager whose name is prefixed 
              with a matching tag.
            </summary>
            <param name="prefix"> The prefix all returned string resources must have. </param>
            <returns>
              A collection of string pairs, the key being the resource's ID, the value being the string.
            </returns>
        </member>
        <member name="M:Remotion.Globalization.IResourceManager.GetString(System.String)">
            <summary>
              Gets the value of the specified String resource.
            </summary>
            <param name="id">The ID of the resource to get. </param>
            <returns>
              The value of the resource. If no match is possible, the identifier is returned.
            </returns>
        </member>
        <member name="M:Remotion.Globalization.IResourceManager.GetString(System.Enum)">
            <summary>
              Gets the value of the specified string resource. The resource is identified by
              concatenating type and value name.
            </summary>
            <remarks> See <see cref="M:Remotion.Globalization.ResourceIdentifiersAttribute.GetResourceIdentifier(System.Enum)"/> for resource identifier syntax. </remarks>
            <returns>
              The value of the resource. If no match is possible, the identifier is returned.
            </returns>
        </member>
        <member name="M:Remotion.Globalization.IResourceManager.ContainsResource(System.String)">
            <summary>Tests whether the <see cref="T:Remotion.Globalization.IResourceManager"/> contains the specified resource.</summary>
            <param name="id">The ID of the resource to look for.</param>
            <returns><see langword="true"/> if the <see cref="T:Remotion.Globalization.IResourceManager"/> contains the specified resource.</returns>
        </member>
        <member name="M:Remotion.Globalization.IResourceManager.ContainsResource(System.Enum)">
            <summary>Tests whether the <see cref="T:Remotion.Globalization.IResourceManager"/> contains the specified resource.</summary>
            <param name="enumValue">The ID of the resource to look for.</param>
            <returns><see langword="true"/> if the <see cref="T:Remotion.Globalization.IResourceManager"/> contains the specified resource.</returns>
        </member>
        <member name="T:Remotion.Globalization.MultiLingualResourcesAttribute">
            <summary>
              Attribute for specifying the resource container for a type.
            </summary>
            <remarks>
            use the <see cref="T:Remotion.Globalization.MultiLingualResources"/> class to analyze instances of this attribute and to retrieve <see cref="T:System.Resources.ResourceManager"/>
            objects for them, eg. when implementing <see cref="T:Remotion.Globalization.IObjectWithResources"/>.
            </remarks>
        </member>
        <member name="F:Remotion.Globalization.MultiLingualResourcesAttribute._baseName">
            <summary> The base name of the resource container </summary>
        </member>
        <member name="M:Remotion.Globalization.MultiLingualResourcesAttribute.#ctor(System.String)">
            <summary> Initalizes an instance. </summary>
        </member>
        <member name="P:Remotion.Globalization.MultiLingualResourcesAttribute.BaseName">
            <summary>
              Gets the base name of the resource container as specified by the attributes construction.
            </summary>
            <remarks>
            The base name of the resource conantainer to be used by this type
            (&lt;assembly&gt;.&lt;path inside project&gt;.&lt;resource file name without extension&gt;).
            </remarks>
        </member>
        <member name="T:Remotion.Globalization.NullResourceManager">
            <summary> A <b>Null Object</b> implementation of <see cref="T:Remotion.Globalization.IResourceManager"/>. </summary>
            <remarks> 
              Use <see cref="F:Remotion.Globalization.NullResourceManager.Instance"/> to access the well defined instance of the <see cref="T:Remotion.Globalization.NullResourceManager"/>.
            </remarks>
        </member>
        <member name="T:Remotion.Globalization.ResourceException">
            <summary>
              Represents errors that occur during resource handling.
            </summary>
        </member>
        <member name="M:Remotion.Globalization.ResourceException.#ctor(System.String)">
            <summary>
              Initializes a new instance of the <see cref="T:Remotion.Globalization.ResourceException"/>  class with a specified 
              error message.
            </summary>
            <param name="message"> The error message string. </param>
        </member>
        <member name="M:Remotion.Globalization.ResourceException.#ctor(System.String,System.Exception)">
            <summary>
              Initializes a new instance of the <see cref="T:Remotion.Globalization.ResourceException"/> class with a specified 
              error message and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="message"> The error message string. </param>
            <param name="innerException"> The inner exception reference. </param>
        </member>
        <member name="M:Remotion.Globalization.ResourceException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
              Initializes a new instance of the <see cref="T:Remotion.Globalization.ResourceException"/> class with serialized 
              data.
            </summary>
            <param name="info"> The info parameter is a <see langword="null"/>.</param>
            <param name="context">
            The class name is a <see langword="null"/> or <see cref="P:System.Exception.HResult"/> is zero (0).
            </param>
        </member>
        <member name="M:Remotion.Globalization.ResourceIdentifiersAttribute.#ctor(System.Boolean)">
            <summary> Initializes a new instance. </summary>
            <param name="suppressTypeName"> If true, the name of the enum type is not included in the resource identifier. Default is true. </param>
        </member>
        <member name="M:Remotion.Globalization.ResourceIdentifiersAttribute.#ctor">
            <summary> Initializes a new instance. </summary>
        </member>
        <member name="T:Remotion.Globalization.ResourceManagerSet">
            <summary>
              Combines one or more <see cref="T:Remotion.Globalization.IResourceManager"/> instances to a set that can be accessed using a single interface.
            </summary>
        </member>
        <member name="M:Remotion.Globalization.ResourceManagerSet.#ctor(Remotion.Globalization.IResourceManager[])">
            <summary>
              Combines several IResourceManager instances to a single ResourceManagerSet, starting with the first entry of the first set.
            </summary>
            <remarks>
              For parameters that are ResourceManagerSet instances, the contained IResourceManagers are added directly.
            </remarks>
            <example>
              <para>
                Given the following parameter list of resource managers (rm) and resource manager sets (rmset):
              </para><para>
                rm1, rm2, rmset (rm3, rm4, rm5), rm6, rmset (rm7, rm8)
              </para><para>
                The following resource manager set is created:
              </para><para>
                rmset (rm1, rm2, rm3, rm4, rm5, rm6, rm7, rm8)
              </para>
            </example>
            <param name="resourceManagers"> The resource manager, starting with the least specific. </param>
        </member>
        <member name="M:Remotion.Globalization.ResourceManagerSet.GetAllStrings(System.String)">
            <summary>
              Searches for all string resources inside the resource manager whose name is prefixed with a matching tag.
            </summary>
            <seealso cref="M:Remotion.Globalization.IResourceManager.GetAllStrings(System.String)"/>
        </member>
        <member name="M:Remotion.Globalization.ResourceManagerSet.GetString(System.String)">
            <summary>
              Gets the value of the specified string resource. 
            </summary>
            <seealso cref="M:Remotion.Globalization.IResourceManager.GetString(System.String)"/>
        </member>
        <member name="M:Remotion.Globalization.ResourceManagerSet.GetString(System.Enum)">
            <summary>
              Gets the value of the specified string resource. 
            </summary>
            <seealso cref="M:Remotion.Globalization.IResourceManager.GetString(System.Enum)"/>
        </member>
        <member name="M:Remotion.Globalization.ResourceManagerSet.ContainsResource(System.String)">
            <summary>Tests whether the <see cref="T:Remotion.Globalization.ResourceManagerSet"/> contains the specified resource.</summary>
            <param name="id">The ID of the resource to look for.</param>
            <returns><see langword="true"/> if the <see cref="T:Remotion.Globalization.ResourceManagerSet"/> contains the specified resource.</returns>
        </member>
        <member name="M:Remotion.Globalization.ResourceManagerSet.ContainsResource(System.Enum)">
            <summary>Tests whether the <see cref="T:Remotion.Globalization.ResourceManagerSet"/> contains the specified resource.</summary>
            <param name="enumValue">The ID of the resource to look for.</param>
            <returns><see langword="true"/> if the <see cref="T:Remotion.Globalization.ResourceManagerSet"/> contains the specified resource.</returns>
        </member>
        <member name="T:Remotion.Globalization.ResourceManagerWrapper">
            <summary>
              A wrapper for the .net Framework <c>ResourceManager</c> implementation.
            </summary>
            <remarks>
              <para>
                Limited to accessing string resources.
                Limited on resources for the current UI culture and its less specific cultures.
              </para><para>
                If multiple Resource Managers are added which belonging to derived types, 
                make sure to sort the resource managers in the order of inheritance before wrapping them.
              </para>
            </remarks>
        </member>
        <member name="M:Remotion.Globalization.ResourceManagerWrapper.#ctor(System.Resources.ResourceManager)">
            <summary>
              Constructor for wrapping multiple resource managers
            </summary>
            <param name="resourceManager">
      The <c>ResourceManager</c> to be wrapped.
      Must not be <see langname="null"/>.
    </param>
        </member>
        <member name="M:Remotion.Globalization.ResourceManagerWrapper.GetAllStrings">
            <summary>
              Returns all string resources inside the wrapped resource managers.
            </summary>
            <returns>
              A collection of string pairs, the key being the resource's ID, the vale being the string.
            </returns>
        </member>
        <member name="M:Remotion.Globalization.ResourceManagerWrapper.GetAllStrings(System.String)">
            <summary>
              Searches for all string resources inside the resource manager whose name is prefixed 
              with a matching tag.
            </summary>
            <seealso cref="M:Remotion.Globalization.IResourceManager.GetAllStrings(System.String)"/>
            <remarks>
      <para>
        If a duplicate ID is found, the ID from the last ResourceManager wins.
      </para><para>
        Fallback:
        <list type="number">
          <item>
            Resource hierarchy for current culture.
          </item>
          <item>
            Resource hierarchies for less specific cultures
          </item>
        </list>
      </para>
    </remarks>
        </member>
        <member name="M:Remotion.Globalization.ResourceManagerWrapper.GetString(System.Enum)">
            <summary>
              Gets the value of the specified string resource. 
            </summary>
            <seealso cref="M:Remotion.Globalization.IResourceManager.GetString(System.Enum)"/>
        </member>
        <member name="M:Remotion.Globalization.ResourceManagerWrapper.GetString(System.String)">
            <summary>
              Gets the value of the specified string resource. 
            </summary>
            <seealso cref="M:Remotion.Globalization.IResourceManager.GetString(System.String)"/>
        </member>
        <member name="M:Remotion.Globalization.ResourceManagerWrapper.ContainsResource(System.String)">
            <summary>Tests whether the <see cref="T:Remotion.Globalization.ResourceManagerWrapper"/> contains the specified resource.</summary>
            <param name="id">The ID of the resource to look for.</param>
            <returns><see langword="true"/> if the <see cref="T:Remotion.Globalization.ResourceManagerWrapper"/> contains the specified resource.</returns>
        </member>
        <member name="M:Remotion.Globalization.ResourceManagerWrapper.ContainsResource(System.Enum)">
            <summary>Tests whether the <see cref="T:Remotion.Globalization.ResourceManagerWrapper"/> contains the specified resource.</summary>
            <param name="enumValue">The ID of the resource to look for.</param>
            <returns><see langword="true"/> if the <see cref="T:Remotion.Globalization.ResourceManagerWrapper"/> contains the specified resource.</returns>
        </member>
        <member name="M:Remotion.Globalization.ResourceManagerWrapper.GetCultureHierarchy(System.Globalization.CultureInfo)">
            <summary>
              Returns the culture hierarchy, starting with the most specialized culture.
            </summary>
            <param name="mostSpecialized">
              The starting point for walking the culture tree upwards. Must not be <see langame="null"/>.
            </param>
            <returns>
              The cultures, starting with the invariant culture, ending with the most specialized culture.
            </returns>
        </member>
        <member name="P:Remotion.Globalization.ResourceManagerWrapper.ResourceManager">
            <summary>
              Gets the wrapped <c>ResourceManager</c> instance. 
            </summary>
        </member>
        <member name="P:Remotion.Globalization.ResourceManagerWrapper.Remotion#Globalization#IResourceManager#Name">
            <summary>
              Gets the root names of the resource files that the <c>IResourceManager</c>
              searches for resources. Multiple roots are separated by a comma.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.AssemblyFinder">
            <summary>
            Finds assemblies using an <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.IRootAssemblyFinder"/> and an <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyLoading.IAssemblyLoader"/>. The <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.IRootAssemblyFinder"/> is
            used to find a set of root assemblies, the <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.AssemblyFinder"/> automatically traverses the assembly references to (transitively)
            find all referenced assemblies as well. The root assemblies and referenced assemblies are loaded with the <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyLoading.IAssemblyLoader"/>.
            </summary>
        </member>
        <member name="M:Remotion.Reflection.TypeDiscovery.AssemblyFinding.AssemblyFinder.#ctor(Remotion.Reflection.TypeDiscovery.AssemblyFinding.IRootAssemblyFinder,Remotion.Reflection.TypeDiscovery.AssemblyLoading.IAssemblyLoader)">
            <summary>
            Initializes a new instance of the <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.AssemblyFinder"/> class.
            </summary>
            <param name="rootAssemblyFinder">The <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyFinding.IRootAssemblyFinder"/> to use for finding the root assemblies.</param>
            <param name="assemblyLoader">The <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyLoading.IAssemblyLoader"/> to use for loading the assemblies found.</param>
        </member>
        <member name="M:Remotion.Reflection.TypeDiscovery.AssemblyFinding.AssemblyFinder.FindAssemblies">
            <summary>
            Uses the <see cref="P:Remotion.Reflection.TypeDiscovery.AssemblyFinding.AssemblyFinder.RootAssemblyFinder"/> to find root assemblies and returns them together with all directly or indirectly referenced 
            assemblies. The assemblies are loaded via the <see cref="P:Remotion.Reflection.TypeDiscovery.AssemblyFinding.AssemblyFinder.AssemblyLoader"/>.
            </summary>
            <returns>The root assemblies and their referenced assemblies.</returns>
        </member>
        <member name="T:Remotion.Reflection.TypeDiscovery.AssemblyFinderTypeDiscoveryService">
            <summary>
            Provides an implementation of the <see cref="T:System.ComponentModel.Design.ITypeDiscoveryService"/> interface that uses an <see cref="P:Remotion.Reflection.TypeDiscovery.AssemblyFinderTypeDiscoveryService.AssemblyFinder"/> to
            retrieve types. This class is created by <see cref="M:Remotion.Configuration.TypeDiscovery.TypeDiscoveryConfiguration.CreateCustomService"/> in the default configuration and
            is therefore the default <see cref="T:System.ComponentModel.Design.ITypeDiscoveryService"/> provided by <see cref="M:Remotion.Reflection.TypeDiscovery.ContextAwareTypeDiscoveryUtility.GetTypeDiscoveryService"/>
            in the standard context.
            </summary>
        </member>
        <member name="M:Remotion.Reflection.TypeDiscovery.AssemblyFinderTypeDiscoveryService.#ctor(Remotion.Reflection.TypeDiscovery.AssemblyFinding.IAssemblyFinder)">
            <summary>
            Initializes a new instance of the <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyFinderTypeDiscoveryService"/> class with a specific <see cref="P:Remotion.Reflection.TypeDiscovery.AssemblyFinderTypeDiscoveryService.AssemblyFinder"/>
            instance.
            </summary>
            <param name="assemblyFinder">The assembly finder used by this service instance to retrieve types.</param>
        </member>
        <member name="M:Remotion.Reflection.TypeDiscovery.AssemblyFinderTypeDiscoveryService.GetTypes(System.Type,System.Boolean)">
            <summary>
            Retrieves the list of types available in the assemblies found by the <see cref="P:Remotion.Reflection.TypeDiscovery.AssemblyFinderTypeDiscoveryService.AssemblyFinder"/> specified in the constructor.
            </summary>
            <param name="baseType">The base type to match. Can be null.</param>
            <param name="excludeGlobalTypes">Indicates whether types from all referenced assemblies should be checked.</param>
            <returns>
            A collection of types that match the criteria specified by baseType and excludeGlobalTypes.
            </returns>
        </member>
        <member name="P:Remotion.Reflection.TypeDiscovery.AssemblyFinderTypeDiscoveryService.AssemblyFinder">
            <summary>
            Gets the assembly finder used by this service to discover types. The service simply returns the types returned by the
            <see cref="M:System.Reflection.Assembly.GetTypes"/> method for the assemblies found by this object.
            </summary>
            <value>The assembly finder used for type discovery.</value>
        </member>
        <member name="T:Remotion.Reflection.TypeDiscovery.AssemblyLoading.AttributeAssemblyLoaderFilter">
            <summary>
            Filters the assemblies loaded during type discovery by custom attributes, including only those which have a given attribute defined. 
            Note that the assemblies have to be loaded in memory in order to check whether the attribute is present. This will also lock those assembly 
            files that are rejected.
            </summary>
        </member>
        <member name="M:Remotion.Reflection.TypeDiscovery.AssemblyLoading.AttributeAssemblyLoaderFilter.#ctor(System.Type)">
            <summary>
            Initializes a new instance of the <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyLoading.AttributeAssemblyLoaderFilter"/> class.
            </summary>
            <param name="attributeType">The attribute type to filter assemblies with.</param>
        </member>
        <member name="M:Remotion.Reflection.TypeDiscovery.AssemblyLoading.AttributeAssemblyLoaderFilter.ShouldConsiderAssembly(System.Reflection.AssemblyName)">
            <summary>
            Always returns <see langword="true"/>; all filtering is performed by <see cref="M:Remotion.Reflection.TypeDiscovery.AssemblyLoading.AttributeAssemblyLoaderFilter.ShouldIncludeAssembly(System.Reflection.Assembly)"/>.
            </summary>
        </member>
        <member name="M:Remotion.Reflection.TypeDiscovery.AssemblyLoading.AttributeAssemblyLoaderFilter.ShouldIncludeAssembly(System.Reflection.Assembly)">
            <summary>
            Determines whether the assembly of the given name should be considered for inclusion by the <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyLoading.FilteringAssemblyLoader"/>.
            Assemblies are considered only if the assembly has the <see cref="P:Remotion.Reflection.TypeDiscovery.AssemblyLoading.AttributeAssemblyLoaderFilter.AttributeType"/> defined.
            </summary>
            <param name="assembly">The assembly to be checked.</param>
            <returns>
            <see langword="false"/> unless the <paramref name="assembly"/> has the <see cref="P:Remotion.Reflection.TypeDiscovery.AssemblyLoading.AttributeAssemblyLoaderFilter.AttributeType"/> defined.
            </returns>
        </member>
        <member name="P:Remotion.Reflection.TypeDiscovery.AssemblyLoading.AttributeAssemblyLoaderFilter.AttributeType">
            <summary>
            Gets the attribute type used for filtering. Only assemblies that have this attribute defined are included.
            </summary>
            <value>The attribute type used for filtering.</value>
        </member>
        <member name="T:Remotion.Reflection.TypeDiscovery.NonApplicationAssemblyAttribute">
            <summary>
            Causes an assembly to be ignored by <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyLoading.ApplicationAssemblyLoaderFilter"/> (which is used by default by all re-motion components
            performing type discovery, such as re-store and Mixins).
            </summary>
        </member>
        <member name="T:Remotion.Reflection.TypeDiscovery.AssemblyLoading.RegexAssemblyLoaderFilter">
            <summary>
            Filters the assemblies loaded during type discovery by name, excluding those whose names match a given regular expression. Whether to
            match the simple name or the full name can be specified.
            </summary>
        </member>
        <member name="M:Remotion.Reflection.TypeDiscovery.AssemblyLoading.RegexAssemblyLoaderFilter.#ctor(System.Text.RegularExpressions.Regex,Remotion.Reflection.TypeDiscovery.AssemblyLoading.RegexAssemblyLoaderFilter.MatchTargetKind)">
            <summary>
            Initializes a new instance of the <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyLoading.RegexAssemblyLoaderFilter"/> class.
            </summary>
            <param name="matchExpression">The expression to match against the assembly name.</param>
            <param name="matchTarget">Specifies whether to match the full names or the simple names of assemblies against the 
            <paramref name="matchExpression"/>.</param>
        </member>
        <member name="M:Remotion.Reflection.TypeDiscovery.AssemblyLoading.RegexAssemblyLoaderFilter.#ctor(System.String,Remotion.Reflection.TypeDiscovery.AssemblyLoading.RegexAssemblyLoaderFilter.MatchTargetKind)">
            <summary>
            Initializes a new instance of the <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyLoading.RegexAssemblyLoaderFilter"/> class.
            </summary>
            <param name="matchExpression">The expression to match against the assembly name. This is converted into a compiled, culture-invariant
            regular expression.</param>
            <param name="matchTarget">Specifies whether to match the full names or the simple names of assemblies against the 
            <paramref name="matchExpression"/>.</param>
        </member>
        <member name="M:Remotion.Reflection.TypeDiscovery.AssemblyLoading.RegexAssemblyLoaderFilter.ShouldConsiderAssembly(System.Reflection.AssemblyName)">
            <summary>
            Determines whether the assembly of the given name should be considered for inclusion by the <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyLoading.FilteringAssemblyLoader"/>.
            Assemblies are considered only if the assembly name does not match the <see cref="P:Remotion.Reflection.TypeDiscovery.AssemblyLoading.RegexAssemblyLoaderFilter.MatchExpressionString"/>.
            </summary>
            <param name="assemblyName">The name of the assembly to be checked.</param>
            <returns>
            <see langword="true"/> unless the <paramref name="assemblyName"/> matches <see cref="P:Remotion.Reflection.TypeDiscovery.AssemblyLoading.RegexAssemblyLoaderFilter.MatchExpressionString"/>.
            </returns>
        </member>
        <member name="M:Remotion.Reflection.TypeDiscovery.AssemblyLoading.RegexAssemblyLoaderFilter.ShouldIncludeAssembly(System.Reflection.Assembly)">
            <summary>
            Always returns <see langword="true"/>; all filtering is performed by <see cref="M:Remotion.Reflection.TypeDiscovery.AssemblyLoading.RegexAssemblyLoaderFilter.ShouldConsiderAssembly(System.Reflection.AssemblyName)"/>.
            </summary>
        </member>
        <member name="P:Remotion.Reflection.TypeDiscovery.AssemblyLoading.RegexAssemblyLoaderFilter.MatchExpressionString">
            <summary>
            Gets a string representation of the regular expression the assemblies are matched against.
            </summary>
            <value>The match expression string.</value>
        </member>
        <member name="T:Remotion.Reflection.TypeDiscovery.AssemblyLoading.ApplicationAssemblyLoaderFilter">
            <summary>
            Filters the assemblies loaded during type discovery by name, excluding those whose names resemble system assemblies or assemblies
            generated by the mixin engine. In addition, assemblies that have the <see cref="T:Remotion.Reflection.TypeDiscovery.NonApplicationAssemblyAttribute"/> defined are also excluded.
            Note that assemblies have to be loaded in memory in order to check whether the attribute is present. This will also lock the assembly files.
            </summary>
            <remarks>
            The name-based filtering by default excludes the following assembly name patterns:
            <list type="bullet">
              <item>mscorlib</item>
              <item>System</item>
              <item>System\..*</item>
              <item>Microsoft\..*</item>
              <item>Remotion\..*\.Generated\..*</item>
            </list>
            This list might change in the future, and it can be extended via <see cref="M:Remotion.Reflection.TypeDiscovery.AssemblyLoading.ApplicationAssemblyLoaderFilter.AddIgnoredAssembly(System.String)"/>.
            </remarks>
            <threadsafety static="true" instance="true"/>
        </member>
        <member name="F:Remotion.Reflection.TypeDiscovery.AssemblyLoading.ApplicationAssemblyLoaderFilter.Instance">
            <summary>
            Returns the global instance of this filter. There is only this one instance of the filter in an application.
            </summary>
        </member>
        <member name="M:Remotion.Reflection.TypeDiscovery.AssemblyLoading.ApplicationAssemblyLoaderFilter.Reset">
            <summary>
            Resets the name filter to the default names, removing any that have been added via <see cref="M:Remotion.Reflection.TypeDiscovery.AssemblyLoading.ApplicationAssemblyLoaderFilter.AddIgnoredAssembly(System.String)"/>.
            </summary>
        </member>
        <member name="M:Remotion.Reflection.TypeDiscovery.AssemblyLoading.ApplicationAssemblyLoaderFilter.AddIgnoredAssembly(System.String)">
            <summary>
            Adds the given regular expression to the list of assembly names to be excluded.
            </summary>
            <param name="simpleNameRegularExpression">A regular expression matching the simple names of assemblies to be excluded.</param>
        </member>
        <member name="M:Remotion.Reflection.TypeDiscovery.AssemblyLoading.ApplicationAssemblyLoaderFilter.ShouldConsiderAssembly(System.Reflection.AssemblyName)">
            <summary>
            Determines whether the assembly of the given name should be considered for inclusion by the <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyLoading.FilteringAssemblyLoader"/>.
            An assembly is only considered for inclusion if it is not identified as a system assembly by matching its name against the 
            <see cref="P:Remotion.Reflection.TypeDiscovery.AssemblyLoading.ApplicationAssemblyLoaderFilter.SystemAssemblyMatchExpression"/>.
            </summary>
            <param name="assemblyName">The name of the assembly to be checked.</param>
            <returns>
            	<see langword="true"/> unless the <paramref name="assemblyName"/> matches the <see cref="P:Remotion.Reflection.TypeDiscovery.AssemblyLoading.ApplicationAssemblyLoaderFilter.SystemAssemblyMatchExpression"/>.
            </returns>
            <remarks>This is the first step of a two-step filtering protocol. Assemblies accepted by this method can still be filtered via 
            <see cref="M:Remotion.Reflection.TypeDiscovery.AssemblyLoading.ApplicationAssemblyLoaderFilter.ShouldIncludeAssembly(System.Reflection.Assembly)"/>.</remarks>
        </member>
        <member name="M:Remotion.Reflection.TypeDiscovery.AssemblyLoading.ApplicationAssemblyLoaderFilter.ShouldIncludeAssembly(System.Reflection.Assembly)">
            <summary>
            Determines whether the given assembly should be included in the list of assemblies returned by the <see cref="T:Remotion.Reflection.TypeDiscovery.AssemblyLoading.FilteringAssemblyLoader"/>.
            An assembly is only included if it does not have the <see cref="T:Remotion.Reflection.TypeDiscovery.NonApplicationAssemblyAttribute"/> defined.
            </summary>
            <param name="assembly">The assembly to be checked.</param>
            <returns>
            	<see langword="true"/> unless the <paramref name="assembly"/> has the <see cref="T:Remotion.Reflection.TypeDiscovery.NonApplicationAssemblyAttribute"/> defined.
            </returns>
            <remarks>This is the second step of a two-step filtering protocol. Only assemblies not rejected by <see cref="M:Remotion.Reflection.TypeDiscovery.AssemblyLoading.ApplicationAssemblyLoaderFilter.ShouldConsiderAssembly(System.Reflection.AssemblyName)"/> are
            passed on to this step.</remarks>
        </member>
        <member name="P:Remotion.Reflection.TypeDiscovery.AssemblyLoading.ApplicationAssemblyLoaderFilter.SystemAssemblyMatchExpression">
            <summary>
            Gets the regular expression string applied to assembly names in order to check whether they are system assemblies.
            </summary>
            <value>The system assembly regular expression string.</value>
        </member>
        <member name="T:Remotion.Reflection.DelegateSelector">
            <summary>
            A function that will create a delegate to call from <see cref="T:Remotion.Reflection.FuncInvoker`1"/>.
            </summary>
            <param name="delegateType"> Type of the delegate that will be created. </param>
            <returns> The delegate used to call the wrapped method. </returns>
        </member>
        <member name="T:Remotion.Reflection.InheritanceHierarchyFilter">
            <summary>
            The <see cref="T:Remotion.Reflection.InheritanceHierarchyFilter"/> can be used to get all leaf classes within a deifned set of types passed into the 
            constructor.
            </summary>
        </member>
        <member name="T:Remotion.Reflection.TypesafeActivator">
            <summary>
            Create an instance of a known type using fixed parameter types for the constructor.
            </summary>
            <remarks>
            While <see cref="M:System.Activator.CreateInstance(System.Type,System.Object[])"/> uses the types of passed arguments to select the correct constructor, this class
            uses the types of the expressions you use at compile time. Use the following code to create an instance of a class called MyClass using a 
            constructor that has an argument of type string:
            <code>
              ParameterType p;
              YourClass obj = TypesafeActivator.CreateInstance&lt;YourClass&gt;().With (p);
            </code>
            This code always selects the constructor that accepts an argument of type ParameterType, even if the value passed is null or an instance
            of a subclass of ParameterType.
            </remarks>
        </member>
        <member name="T:Remotion.Utilities.ActionUtility">
            <summary>
            Provides commonly used operations on <see cref="T:System.Action`1"/>  delegate types.
            </summary>
        </member>
        <member name="T:Remotion.Text.CommandLine.CommandLineArgument">
            <summary>
            The base class for command line argument definitions
            </summary>
        </member>
        <member name="M:Remotion.Text.CommandLine.CommandLineArgument.#ctor(System.Boolean)">
            <summary>
            Creates a positional command line argument.
            </summary>
        </member>
        <member name="M:Remotion.Text.CommandLine.CommandLineArgument.#ctor(System.String,System.Boolean)">
            <summary>
            Creates a named command line argument.
            </summary>
        </member>
        <member name="T:Remotion.Text.CommandLine.CommandLineArgumentCollection">
            <summary>
            A collection of <see cref="T:Remotion.Text.CommandLine.CommandLineArgument"/> objects.
            </summary>
        </member>
        <member name="T:Remotion.Text.CommandLine.CommandLineArgumentAttribute">
            <summary>
            Use descendants of <see cref="T:Remotion.Text.CommandLine.CommandLineArgumentAttribute"/> (<see cref="T:Remotion.Text.CommandLine.CommandLineStringArgument"/>, <see cref="T:Remotion.Text.CommandLine.CommandLineFlagArgument"/>,...)
            to qualify class properties as command line arguments, to be able to be
            filled from a <c>string[] args</c> by a <see cref="T:Remotion.Text.CommandLine.CommandLineClassParser"/>.
            </summary>
            <example>
            <code>
            <![CDATA[
            // [CommandLineStringArgument (argumentName, isOptional, Placeholder = argumentExample, Description = argumentHelpDescription)]
            [CommandLineStringArgument ("user", true, Placeholder = "accountants/john.doe", Description = "Fully qualified name of user(s) to query access types for.")]
            public string UserName;
            ]]>
            </code>
            </example>
            <example>
            <code>
            <![CDATA[
            [CommandLineFlagArgument ("keepTypeNames", false,
            Description = "Specifies that the mixer should not use GUIDs to name the generated types.")]
            public bool KeepTypeNames;
            ]]>
            </code>
            </example>
        </member>
        <member name="M:Remotion.Text.CommandLine.CommandLineArgumentAttribute.#ctor(System.Int32)">
            <summary> do not use this constructor </summary>
            <remarks> 
              This constructor is necessary because, even in <see langword="abstract"/> attribute classes, one constructor 
              must have arguments that meet the constraints of attribute declarations. 
            </remarks>
        </member>
        <member name="T:Remotion.Text.CommandLine.CommandLineStringArgumentAttribute">
            <summary>
            Use <see cref="T:Remotion.Text.CommandLine.CommandLineStringArgumentAttribute"/> to qualify positional or named string command line arguments.
            </summary>
            <remarks>
            <para>Pass named arguments using e.g. <c>app.exe /user:john.doe</c>.</para>
            <para>Pass positional arguments using e.g. <c>app.exe input.csv output.xml</c>.</para>
            <para>
            <example>
            Named argument example:
            <code>
            <![CDATA[
            // [CommandLineStringArgument (argumentName, isOptional, Placeholder = argumentExample, Description = argumentHelpDescription)]
            [CommandLineStringArgument ("user", true, Placeholder = "accountants/john.doe", Description = "Fully qualified name of user(s) to query access types for.")]
            public string UserName;
            ]]>
            </code>
            </example>
            </para>
            <para>
            <example>
            Positional argument example.
            Argument order corresponds to the order of 
            <see cref="T:Remotion.Text.CommandLine.CommandLineArgument"/> qualified properties in the C# sourcefile:
            <code>
            <![CDATA[
            // [CommandLineStringArgument (isOptional, Placeholder = argumentExample, Description = argumentHelpDescription)]
            [CommandLineStringArgument (false, Placeholder = "input.csv", Description = "The input CSV file to be transformed to XML.")]
            public string InputFileName;
            [CommandLineStringArgument (false, Placeholder = "output.xml", Description = "The resulting XML file.")]
            public string OutputFileName;
            ]]>
            </code>
            </example>
            </para>
            </remarks>
        </member>
        <member name="T:Remotion.Text.CommandLine.CommandLineParser">
            <summary>
            Provides methods for declaring command line syntax and providing values.
            </summary>
        </member>
        <member name="M:Remotion.Text.CommandLine.CommandLineParser.SplitCommandLine(System.String,System.Boolean)">
            <summary>
            Splits a command line string into an array of command line arguments, separated by spaces.
            </summary>
            <param name="commandLine">The command line (as available from <see cref="P:System.Environment.CommandLine"/>.)</param><returns>An array of command line arguments.</returns><remarks>
      The following rules apply:
      <list type="bullet">
        <item>Use spaces to separate arguments.</item>
        <item>Embed arguments within double quotation marks to treat them as a single argument even if they contain 
        spaces.</item>
        <item>Within double quotation marks, use two double quotation marks if you need one double quotation mark in the 
        argument.</item>
      </list>
      This resembles the logic that is applied to the arguments of the C# Main method. However, the parameters passed to
      the Main method are parsed a little bit differently in special situations, according to an unknown and undocumented 
      algorithm.
    </remarks><example>
      <list type="table">
        <listheader>
          <term>Command Line</term>
          <description>Parsing Result</description>
        </listheader>
        <item>
          <term>
            Hello world!
          </term>
          <description>
            <para>
              Hello
            </para><para>
              world!
            </para>
          </description>
        </item>
        <item>
          <term>
            Hello "new world!"
          </term>
          <description>
            <para>
              Hello
            </para><para>
              new world!
            </para>
          </description>
        </item>
        <item>
          <term>
            Hello """new"" world!"
          </term>
          <description>
            <para>
              Hello
            </para><para>
              "new" world!
            </para>
          </description>
        </item>
      </list>
    </example>
            <param name="includeFirstArgument">
      If <see langword="true"/>, the first argument (which is usually the file name of
      the program) is included, otherwise only the arguments after the first one are included.
    </param>
        </member>
        <member name="M:Remotion.Text.CommandLine.CommandLineParser.Parse(System.String,System.Boolean)">
            <summary>
            This method reads a command line and initializes the arguments contained in <see cref="F:Remotion.Text.CommandLine.CommandLineParser.Arguments"/>.
            </summary>
            <param name="commandLine">The string that contains the command line arguments. See <see cref="M:Remotion.Text.CommandLine.CommandLineParser.SplitCommandLine(System.String,System.Boolean)"/> for information on how
            command lines are parsed.</param>
            <param name="includeFirstArgument">
      If <see langword="true"/>, the first argument (which is usually the file name of
      the program) is included, otherwise only the arguments after the first one are included.
    </param>
            <exception cref="T:Remotion.Text.CommandLine.InvalidCommandLineArgumentValueException">The value of a parameter cannot be interpreted.</exception>
            <exception cref="T:Remotion.Text.CommandLine.InvalidCommandLineArgumentNameException">The command line contains a named argument that is not defined.</exception>
            <exception cref="T:Remotion.Text.CommandLine.InvalidNumberOfCommandLineArgumentsException">The command line contains too many unnamed arguments.</exception>
            <exception cref="T:Remotion.Text.CommandLine.MissingRequiredCommandLineParameterException">A non-optional command line argument is not contained in the command line.</exception>
        </member>
        <member name="M:Remotion.Text.CommandLine.CommandLineParser.Parse(System.String[])">
            <summary>
            This method reads the strings of a command line (as passed to the C# Main method) and
            initializes the arguments contained in <see cref="F:Remotion.Text.CommandLine.CommandLineParser.Arguments"/>.
            </summary>
            <param name="args">An array of command line arguments. This is typically the <c>args</c> parameter passed to the C# Main method.</param>
            <exception cref="T:Remotion.Text.CommandLine.InvalidCommandLineArgumentValueException">The value of a parameter cannot be interpreted.</exception>
            <exception cref="T:Remotion.Text.CommandLine.InvalidCommandLineArgumentNameException">The command line contains a named argument that is not defined.</exception>
            <exception cref="T:Remotion.Text.CommandLine.InvalidNumberOfCommandLineArgumentsException">The command line contains too many unnamed arguments.</exception>
            <exception cref="T:Remotion.Text.CommandLine.MissingRequiredCommandLineParameterException">A non-optional command line argument is not contained in the command line.</exception>
        </member>
        <member name="M:Remotion.Text.CommandLine.CommandLineParser.GetAsciiSynopsis(System.String,System.Int32)">
            <summary>
            Returns a string containing the syntax description of the arguments contained in <see cref="F:Remotion.Text.CommandLine.CommandLineParser.Arguments"/>.
            </summary>
            <param name="commandName">The file name of the program.</param>
            <param name="maxWidth">The maximum line length (for screen output, use 79 for 80 character output to avoid blank lines).</param>
            <returns>A syntax overview containing a short command line overview and a table of parameters and desciptions.</returns>
        </member>
        <member name="F:Remotion.Text.CommandLine.CommandLineClassParser._arguments">
            <summary> IDictionary &lt;CommandLineArgument, MemberInfo&gt; </summary>
        </member>
        <member name="P:Remotion.Text.CommandLine.CommandLineGroupArgument.Parts">
            <summary> IList&lt;CommandLineArgument&gt;</summary>
        </member>
        <member name="T:Remotion.Text.CommandLine.ICommandLinePartArgument">
            <summary>
            Implemented by argument types that are part of a <see cref="T:Remotion.Text.CommandLine.CommandLineGroupArgument"/>.
            </summary>
        </member>
        <member name="F:Remotion.Text.CommandLine.CommandLineModeArgument._flags">
            <summary> ArrayList&lt;CommandLineModeFlagArgument&gt;</summary>
        </member>
        <member name="T:Remotion.Text.CommandLine.CommandLineModeFlagArgument">
            <summary>
            Several flag arguments are used for one mode argument group. E.g. /mode1 or /mode2 are two flags that specify either of two modes.
            </summary>
        </member>
        <member name="T:Remotion.Text.CommandLine.CommandLineArgumentException">
            <summary>
            Base class for all exceptions that indicate errors in the command line.
            </summary>
            <remarks>
            Throw <see cref="T:Remotion.Text.CommandLine.CommandLineArgumentApplicationException"/> to indicate application-defined command line
            errors (e.g., use of arguments that exclude each other).
            </remarks>
        </member>
        <member name="T:Remotion.Text.CommandLine.InvalidCommandLineArgumentValueException">
            <summary>
            This exception is thrown if the value of a parameter cannot be interpreted.
            </summary>
        </member>
        <member name="T:Remotion.Text.CommandLine.InvalidCommandLineArgumentNameException">
            <summary>
            This exception is thrown if the command line contains a named argument that is not defined.
            </summary>
            <remarks>
            The exception is thrown either because there is no argument definition with the specified name,
            or (if <see cref="P:Remotion.Text.CommandLine.CommandLineParser.IncrementalNameValidation"/> is <see langword="true"/>), because there 
            is more than one argument that starts with the specified string.
            </remarks>
        </member>
        <member name="T:Remotion.Text.CommandLine.InvalidNumberOfCommandLineArgumentsException">
            <summary>
            This exception is thrown if the command line contains too many unnamed arguments.
            </summary>
        </member>
        <member name="T:Remotion.Text.CommandLine.MissingRequiredCommandLineParameterException">
            <summary>
            This exception is thrown if a non-optional command line argument is not contained in the command line.
            </summary>
        </member>
        <member name="T:Remotion.Text.CommandLine.ConflictCommandLineParameterException">
            <summary>
            This exception is thrown if two or more conflictiong arguments are set.
            </summary>
        </member>
        <member name="T:Remotion.Text.CommandLine.CommandLineArgumentApplicationException">
            <summary>
            This exception class indicates application-defined error conditions.
            </summary>
            <remarks>
            Use this class to indicate application-defined command line errors (e.g., 
            use of arguments that exclude each other).
            </remarks>
        </member>
        <member name="T:Remotion.Diagnostics.OuterProductIndexGenerator">
            <summary>
            Allows a class implementing the IOuterProductProcessor interface to visit each member of an outer product of a variable number of independently sized tuples.
            From a programmer's view the class supplies "variable number of nested for loops"-functionality.
            For convenience derive you processor class from <see cref="T:Remotion.Diagnostics.OuterProductProcessorBase"/> (see examples below).
            </summary>
            <!-- No matching elements were found for the following include tag --><include file="doc\include\Diagnostics\OuterProduct.xml" path="OuterProductIndexGenerator/ClassExample1/*"/>
            <!-- No matching elements were found for the following include tag --><include file="doc\include\Diagnostics\OuterProduct.xml" path="OuterProductIndexGenerator/ClassExample2/*"/>
        </member>
        <member name="M:Remotion.Diagnostics.OuterProductIndexGenerator.#ctor(System.Int32[])">
            <overloads>
            OuterProductIndexGenerator can be initialized in a general way by passing the number of elements
            along each dimension in an integer array, or specialized by passing a rectangular array whose
            dimensions shall be used by the outer product.
            </overloads>
             <summary>
             Initializes OuterProductIndexGenerator from an integer array, where each array entry gives the number of elements along its
             corresponding dimension. In programers terms: The number of times each nested for-loop will loop.
             </summary>
             <param name="numberElementsPerDimension">"Number of loops for each for"-loop array</param>
        </member>
        <member name="M:Remotion.Diagnostics.OuterProductIndexGenerator.#ctor(System.Array)">
            <summary>
            Initializes OuterProductIndexGenerator from a (rectangular) array. Use to iterate over a rectangular array and access
            its members with <c>rectangularArray.GetValue(ProcessingState.DimensionIndices)</c> in the
            <see cref="T:Remotion.Diagnostics.IOuterProductProcessor"/> implementation.
            </summary>
            <param name="array">Array from whose dimensions the dimensions of the outer product will be initialized.</param>
        </member>
        <member name="M:Remotion.Diagnostics.OuterProductIndexGenerator.CalculateOuterProductNumberElementsOverall(System.Int32[])">
            <summary>
            Calcs the number of elements in an outer product. 
            </summary>
            <param name="numberElementsPerDimension">The array giving the number of elements along each dimension of the outer product.</param>
            <returns>The product of the numbers in the passed array of integers.</returns>
        </member>
        <member name="M:Remotion.Diagnostics.OuterProductIndexGenerator.ProcessOuterProductRecursive(System.Int32,Remotion.Diagnostics.IOuterProductProcessor)">
            <summary>
            The recursive method which implements the variable number of for-loops together with processing callbacks to the outerProductProcessor.
            </summary>
            <param name="dimensionIndex"></param>
            <param name="outerProductProcessor"></param>
        </member>
        <member name="M:Remotion.Diagnostics.OuterProductIndexGenerator.ProcessOuterProduct(Remotion.Diagnostics.IOuterProductProcessor)">
            <summary>
            Call to start the processing of each OuterProductIndexGenerator-element.
            </summary>
            <param name="outerProductProcessor">An OuterProductIndexGenerator-processor which needs to implement the IOuterProductProcessor interface.</param>
        </member>
        <member name="P:Remotion.Diagnostics.OuterProductIndexGenerator.NumberElementsProcessed">
            <summary>
            The total number of outer product elements that have been visited by the processor.
            </summary>
        </member>
        <member name="P:Remotion.Diagnostics.OuterProductIndexGenerator.NumberElementsPerDimension">
            <summary>
            The number of elements in each outer product dimension.
            </summary>
        </member>
        <member name="P:Remotion.Diagnostics.OuterProductIndexGenerator.NumberElementsOverall">
            <summary>
            The total number of elements in the outer product (= the product of all NumberElementsPerDimension entries).
            </summary>
        </member>
        <member name="P:Remotion.Diagnostics.OuterProductIndexGenerator.DimensionIndices">
            <summary>
            The dimension indices representing the current outer product permutation.
            </summary>
        </member>
        <member name="P:Remotion.Diagnostics.OuterProductIndexGenerator.Length">
            <summary>
            The total number of combinations in the outer product.
            </summary>
        </member>
        <member name="F:Remotion.Text.IdentifierGenerator._uniqueIdentfiersByObject">
            <summary> Hashtable&lt;object uniqueObject, string uniqueIdentifier&gt; </summary>
        </member>
        <member name="F:Remotion.Text.IdentifierGenerator._uniqueIdentifiers">
            <summary> Hashtable&lt;string uniqueIdentifier, null&gt; </summary>
        </member>
        <member name="F:Remotion.Text.IdentifierGenerator._isTemplate">
            <summary> Specifies that the IdentifierGenerator must be cloned and cannot be used directly. </summary>
        </member>
        <member name="F:Remotion.Text.IdentifierGenerator._specificReplaceStrings">
            <summary> IDictionary&lt;char, string&gt; </summary>
        </member>
        <member name="M:Remotion.Text.IdentifierGenerator.Clone">
            <summary>
              Creates a copy of an IdentifierGenerator.
            </summary>
            <remarks>
              No records of generated identifiers are copied to the clone.
            </remarks>
        </member>
        <member name="P:Remotion.Text.IdentifierGenerator.CStyle">
            <summary>
              Returns an identifier generator for C-style identifiers.
            </summary>
            <remarks>
              <para>
                If you want to generate unique identifiers, use the <see cref="M:Remotion.Text.IdentifierGenerator.Clone"/> method to create a new <c>IdentifierGenerator</c>.
              </para><para>
                C-style identifiers start with either an english letter or an underscore. All other characters can
                be english letters, digits or underscores. C-style identifiers are case-sensitive.
              </para><para>
                C-style identifiers can be used for the programming languages C, C++, C# and Java, among others. 
                (Note that C# allows a number of unicode characters too, including languages-specific letters.)
              </para>
            </remarks>
        </member>
        <member name="P:Remotion.Text.IdentifierGenerator.HtmlStyle">
            <summary>
              Returns an identifier generator for HTML ID tokens.
            </summary>
            <remarks>
              <para>
                If you want to generate unique identifiers, use the <see cref="M:Remotion.Text.IdentifierGenerator.Clone"/> method to create a new <c>IdentifierGenerator</c>.
              </para><para>
                See http://www.w3.org/TR/html4/types.html#type-id
              </para>
            </remarks>
        </member>
        <member name="P:Remotion.Text.IdentifierGenerator.XmlStyle">
            <summary>
              Returns an identifier generator for XML ID tokens.
            </summary>
            <remarks>
              <para>
                If you want to generate unique identifiers, use the <see cref="M:Remotion.Text.IdentifierGenerator.Clone"/> method to create a new <c>IdentifierGenerator</c>.
              </para><para>
                See http://www.w3.org/TR/REC-xml#id
              </para>
            </remarks>
        </member>
        <member name="P:Remotion.Text.IdentifierGenerator.UniqueSeparator">
            <summary>
              If a unique number is appended to string, <c>UniqueSeparator</c> is inserted between the identifier 
              and the number.
            </summary>
            <example>
              If <c>UniqueSeparator</c> is an underscore ("_"), an identifier "id" is generated and has to be 
              appended with the number 2 to be unique, the resulting unique identifier is "id_2".
            </example>
        </member>
        <member name="P:Remotion.Text.IdentifierGenerator.AllowEnglishLetters">
            <summary>
            States that all english letters (upper case and lower case) are valid for identifiers, while accented
            letters and umlauts are not.
            </summary>
        </member>
        <member name="P:Remotion.Text.IdentifierGenerator.AllowLanguageSpecificLetters">
            <summary>
            States that all letters (upper case and lower case) are valid for identifiers, including accented
            letters and umlauts.
            </summary>
        </member>
        <member name="P:Remotion.Text.IdentifierGenerator.AllowDigits">
            <summary>
            States that numeric digits are valid for identifiers.
            </summary>
        </member>
        <member name="P:Remotion.Text.IdentifierGenerator.AllowAdditionalCharacters">
            <summary>
            Provides a list of characters that are valid as a string.
            </summary>
        </member>
        <member name="P:Remotion.Text.IdentifierGenerator.DefaultReplaceString">
            <summary>
            Characters that are not valid and have no special replace string defined are replaced with this value.
            </summary>
        </member>
        <member name="P:Remotion.Text.IdentifierGenerator.TreatFirstCharacterSpecial">
            <summary>
            If this property is true, the special properties for the first character are considered for
            the first character instead of the normal properties.
            </summary>
            <remarks>
              If <c>TreatFirstCharacterSpecial</c> is true,
              <list type="bullets">
                <item><see cref="P:Remotion.Text.IdentifierGenerator.AllowFirstCharacterEnglishLetters"/></item> is considered instead of <see cref="P:Remotion.Text.IdentifierGenerator.AllowEnglishLetters"/>
                <item><see cref="P:Remotion.Text.IdentifierGenerator.AllowFirstCharacterLanguageSpecificLetters"/></item> is considered instead of <see cref="P:Remotion.Text.IdentifierGenerator.AllowLanguageSpecificLetters"/>
                <item><see cref="P:Remotion.Text.IdentifierGenerator.AllowFirstCharacterDigits"/></item> is considered instead of <see cref="P:Remotion.Text.IdentifierGenerator.AllowDigits"/>
                <item><see cref="P:Remotion.Text.IdentifierGenerator.AllowFirstCharacterAdditionalCharacters"/></item> is considered instead of <see cref="P:Remotion.Text.IdentifierGenerator.AllowAdditionalCharacters"/>
                <item><see cref="P:Remotion.Text.IdentifierGenerator.DefaultFirstCharacterReplaceString"/></item> is considered instead of <see cref="P:Remotion.Text.IdentifierGenerator.DefaultReplaceString"/>
              </list>
              for the first character.
            </remarks>
        </member>
        <member name="P:Remotion.Text.IdentifierGenerator.AllowFirstCharacterEnglishLetters">
            <summary>
            States that all english letters (upper case and lower case) are valid for the first character of an 
            identifier, while accented letters and umlauts are not.
            </summary>
            <remarks>
            This property is only considered if <see cref="P:Remotion.Text.IdentifierGenerator.TreatFirstCharacterSpecial"/> is <see langword="true"/>.
            </remarks>
        </member>
        <member name="P:Remotion.Text.IdentifierGenerator.AllowFirstCharacterLanguageSpecificLetters">
            <summary>
            States that all letters (upper case and lower case) are valid for the first character of an identifier, 
            including accented letters and umlauts.
            </summary>
            <remarks>
            This property is only considered if <see cref="P:Remotion.Text.IdentifierGenerator.TreatFirstCharacterSpecial"/> is <see langword="true"/>.
            </remarks>
        </member>
        <member name="P:Remotion.Text.IdentifierGenerator.AllowFirstCharacterDigits">
            <summary>
            States that numeric digits are valid for the first character of an identifier.
            </summary>
            <remarks>
            This property is only considered if <see cref="P:Remotion.Text.IdentifierGenerator.TreatFirstCharacterSpecial"/> is <see langword="true"/>.
            </remarks>
        </member>
        <member name="P:Remotion.Text.IdentifierGenerator.AllowFirstCharacterAdditionalCharacters">
            <summary>
            Provides a list of characters that are valid for the first character of an identifier.
            </summary>
            <remarks>
            This property is only considered if <see cref="P:Remotion.Text.IdentifierGenerator.TreatFirstCharacterSpecial"/> is <see langword="true"/>.
            </remarks>
        </member>
        <member name="P:Remotion.Text.IdentifierGenerator.DefaultFirstCharacterReplaceString">
            <summary>
            If the first character is not valid and has no special replace string defined, it isreplaced with this value.
            </summary>
            <remarks>
            This property is only considered if <see cref="P:Remotion.Text.IdentifierGenerator.TreatFirstCharacterSpecial"/> is <see langword="true"/>.
            </remarks>
        </member>
        <member name="P:Remotion.Text.IdentifierGenerator.IsCaseSensitive">
            <summary>
              Specifies whether the resulting identifiers are case-sensitive.
            </summary>
            <remarks>
              For generating unique identifiers, this property determines which identifiers are considered equal.
            </remarks>
        </member>
        <member name="P:Remotion.Text.IdentifierGenerator.UseCaseSensitiveNames">
            <summary>
              Secifies whether the provided unique names are considered to be case sensitive.
            </summary>
            <remarks>
              For generating unique identifiers using unique names, this property determines whether two unique names that
              differ only in case are considered equal.
            </remarks>
        </member>
        <member name="T:Remotion.Text.MonospaceTextFormat">
            <summary>
            Utility functions for formatting text with fixed character widths.
            </summary>
        </member>
        <member name="M:Remotion.Text.MonospaceTextFormat.AppendWrappedText(System.Text.StringBuilder,System.Int32,System.String)">
            <summary>
            Formats the specified text with word breaks within the specified line width.
            </summary>
            <param name="sb">The StringBuilder object the text is written to.</param>
            <param name="lineWidth">The line width of the output.</param>
            <param name="text">The text that is to be formatted.</param>
        </member>
        <member name="M:Remotion.Text.MonospaceTextFormat.AppendIndentedText(System.Text.StringBuilder,System.Int32,System.Int32,System.String)">
            <summary>
            Formats the specified text with word breaks within the specified line width. All lines but the first are indented.
            </summary>
            <param name="sb">The StringBuilder object the text is written to.</param>
            <param name="indent">The number of characters already contained in the current line, which is also the number of spaces
            that preceed each following line.</param>
            <param name="lineWidth">The line width of the output.</param>
            <param name="text">The text that is to be formatted.</param>
        </member>
        <member name="M:Remotion.Text.MonospaceTextFormat.SplitTextOnSeparator(System.String,System.String@,System.String@,System.Int32,System.Char[])">
            <summary>
            Splits a string on the last separator character before the specified split position.
            </summary>
            <param name="text">Input string.</param>
            <param name="beforeSplit">Returns the part of the string before the split.</param>
            <param name="afterSplit">Returns the part of the string after the split, or a null reference if the complete string was returned in <c>beforeSplit</c>.</param>
            <param name="splitAt">Specifies the position to split at. No more than <c>splitAt</c> characters will be returned in <c>beforeSplit</c>.</param>
            <param name="separators">Valid separator characters.</param>
        </member>
        <member name="T:Remotion.Text.SeparatedStringBuilder">
            <summary>
            Builds a string adding separators between appended strings.
            </summary>
        </member>
        <member name="M:Remotion.Text.SeparatedStringBuilder.Build``1(System.String,System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.String})">
            <summary>
            Appends the result of selector(item) for each item in the specified list.
            </summary>
        </member>
        <member name="M:Remotion.Text.SeparatedStringBuilder.Build``1(System.String,System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Appends each item in the specified list.
            </summary>
        </member>
        <member name="M:Remotion.Text.SeparatedStringBuilder.Build``1(System.String,System.Collections.IEnumerable,System.Func{``0,System.String})">
            <summary>
            Appends the result of selector(item) for each item in the specified list.
            </summary>
        </member>
        <member name="M:Remotion.Text.SeparatedStringBuilder.Build(System.String,System.Collections.IEnumerable)">
            <summary>
            Appends each item in the specified list.
            </summary>
        </member>
        <member name="M:Remotion.Text.StringExtensions.StringExtensions.LeftUntilChar(System.String,System.Char)">
            <summary>
            Returns the substring of the passed string starting at the first character and 
            ending at the passed seperator character, excluding the seperator character.
            </summary>
        </member>
        <member name="M:Remotion.Text.StringExtensions.StringExtensions.RightUntilChar(System.String,System.Char)">
            <summary>
            Returns the substring of the passed string starting at the last character and ending at 
            the passed seperator character, excluding the seperator character.
            </summary>
        </member>
        <member name="M:Remotion.Text.StringExtensions.StringExtensions.EscapeString(System.String,System.Text.StringBuilder)">
            <summary>
            Appends the passed string to the passed <see cref="T:System.Text.StringBuilder"/>, replacing all tabs,newlines, linefeeds, etc 
            with their escaped C# string representation. E.g. tabulator =&gt; \t .
            See also <see cref="M:Remotion.Text.StringExtensions.StringExtensions.Escape(System.String)"/>.
            </summary>
        </member>
        <member name="M:Remotion.Text.StringExtensions.StringExtensions.Escape(System.String)">
            <summary>
            Returns the passed string with all tabs, newlines, linefeeds, etc 
            replaced with their escaped C# string representation. E.g. tabulator =&gt; \t .
            See also <see cref="M:Remotion.Text.StringExtensions.StringExtensions.EscapeString(System.String,System.Text.StringBuilder)"/>.
            </summary>
        </member>
        <member name="T:Remotion.Utilities.AppDomainAssemblyResolver">
            <summary>
            Helper class for resolving assemblies when executing code in a separate <see cref="T:System.AppDomain"/>. Create an instance of this class in the
            target app domain, then use <see cref="M:Remotion.Utilities.AppDomainAssemblyResolver.Register(System.AppDomain)"/> to register the resolver with the <see cref="T:System.AppDomain"/>. The class derives from
            <see cref="T:System.MarshalByRefObject"/> in order to allow <see cref="M:Remotion.Utilities.AppDomainAssemblyResolver.Register(System.AppDomain)"/> to be called from the parent <see cref="T:System.AppDomain"/>. After 
            <see cref="M:Remotion.Utilities.AppDomainAssemblyResolver.Register(System.AppDomain)"/> was called, the resolver tries to resolve all assembly references from the given assembly directory.
            </summary>
        </member>
        <member name="T:Remotion.Utilities.AppDomainRunnerBase">
            <summary>
            Base class for executing code in a separate <see cref="T:System.AppDomain"/>.
            </summary>
        </member>
        <member name="T:Remotion.Utilities.AttributeUtility">
            <summary>
            Utility class for finding custom attributes via their type or an interface implemented by the type.
            </summary>
        </member>
        <member name="T:Remotion.Utilities.AssertionException">
            <summary>
            This exception is thrown when an assertion fails.
            </summary>
            <seealso cref="T:Remotion.Utilities.Assertion"/>
        </member>
        <member name="T:Remotion.Utilities.Assertion">
            <summary>
            Provides methods that throw an <see cref="T:Remotion.Utilities.AssertionException"/> if an assertion fails.
            </summary>
            <remarks>
              <para>
              This class contains methods that are conditional to the DEBUG and TRACE attributes (<see cref="M:Remotion.Utilities.Assertion.DebugAssert(System.Boolean)"/> and <see cref="M:Remotion.Utilities.Assertion.TraceAssert(System.Boolean)"/>). 
              </para><para>
              Note that assertion expressions passed to these methods are not evaluated (read: executed) if the respective symbol are not defined during
              compilation, nor are the methods called. This increases performance for production builds, but make sure that your assertion expressions do
              not cause any side effects! See <see cref="T:System.Diagnostics.ConditionalAttribute"/> or <see cref="T:System.Diagnostics.Debug"/> and <see cref="T:System.Diagnostics.Trace"/> the for more information 
              about conditional compilation.
              </para><para>
              Assertions are no replacement for checking input parameters of public methods (see <see cref="T:Remotion.Utilities.ArgumentUtility"/>).  
              </para>
            </remarks>
        </member>
        <member name="T:Remotion.Utilities.ConsoleApplication.ConsoleApplication`2">
            <summary>
            Console application class: Supplies command line parsing (including standard command line switches; 
            see <see cref="T:Remotion.Utilities.ConsoleApplication.ConsoleApplicationSettings"/>) and standardized error handling and output.
            </summary>
            <remarks>
            Standard command line switches: "/?" to show the usage information, "/wait+" to wait for a keypress at the end of program execution.
            </remarks>
            <example>
            <code>
            <![CDATA[
            public class Program 
            {
              public static int Main (string[] args)
              {
                var consoleApplication = new ConsoleApplication<AclExpanderApplication, AclExpanderApplicationSettings>();
                return consoleApplication.Main (args);
              }
            }
            ]]>
            </code>
            </example>
            <typeparam name="TApplication">The application implementation class. Supplied with an log- and error-output-stream
            by the <see cref="N:Remotion.Utilities.ConsoleApplication"/>.
            Needs to implement <see cref="T:Remotion.Utilities.ConsoleApplication.IApplicationRunner`1"/>.
            </typeparam>
            <typeparam name="TApplicationSettings">The settings for the <typeparamref name="TApplication"/>. 
            Needs to derive from <see cref="T:Remotion.Utilities.ConsoleApplication.ConsoleApplicationSettings"/>.
            </typeparam>
        </member>
        <member name="T:Remotion.Utilities.ConsoleApplication.ConsoleApplicationSettings">
            <summary>
            Supplies command line arguments for <see cref="T:Remotion.Utilities.ConsoleApplication.ConsoleApplication`2"/>|s:
            <para>/? ... output usage information</para>
            <para>/wait+ ... wait for a keypress at the end of program execution</para>
            </summary>
        </member>
        <member name="T:Remotion.Utilities.ConsoleApplication.IApplicationRunner`1">
            <summary>
            Interface for application classes turned into console applications by "wrapping" them in a 
            <see cref="T:Remotion.Utilities.ConsoleApplication.ConsoleApplicationSettings"/>.
            </summary>
            <typeparam name="TApplicationSettings">The settings-class for the for the application. 
            Needs to derive from <see cref="T:Remotion.Utilities.ConsoleApplication.ConsoleApplication`2"/>.</typeparam>
        </member>
        <member name="T:Remotion.Utilities.ConsoleApplication.IWaiter">
            <summary>
            Interface for classes that support some sort of wait functionality. The <see cref="M:Remotion.Utilities.ConsoleApplication.IWaiter.Wait"/>-method 
            returns when the event the class implementing <see cref="T:Remotion.Utilities.ConsoleApplication.IWaiter"/> occured (e.g. see <see cref="T:Remotion.Utilities.ConsoleApplication.ConsoleKeypressWaiter"/>).
            </summary>
        </member>
        <member name="T:Remotion.Utilities.ConsoleApplication.ConsoleKeypressWaiter">
            <summary>
            Class implementing <see cref="M:Remotion.Utilities.ConsoleApplication.ConsoleKeypressWaiter.Wait"/> to wait for a keypress on the console.
            The <see cref="T:Remotion.Utilities.ConsoleApplication.IWaiter"/>-method returns after a console key has been pressed.
            </summary>
        </member>
        <member name="T:Remotion.Utilities.ConsoleUtility">
            <summary>
            Provides utility methods for managing consoles.
            </summary>
        </member>
        <member name="M:Remotion.Utilities.ConsoleUtility.EnterColorScope(System.Nullable{System.ConsoleColor},System.Nullable{System.ConsoleColor})">
            <summary>
            Temporarily sets the foreground and background of the default console to the given <paramref name="foregroundColor"/> and
            <paramref name="backgroundColor"/>. The previous colors are restored when the returned object's <see cref="M:System.IDisposable.Dispose"/> method is 
            called, eg. in a <c>using</c> statement.
            </summary>
            <param name="foregroundColor">The color to temporarily assign as the console's foreground color. Pass <see langword="null"/> to leave the 
            foreground color untouched.</param>
            <param name="backgroundColor">The color to temporarily assign as the console's background color. Pass <see langword="null"/> to leave the 
            background color untouched.</param>
            <returns>A <see cref="T:System.IDisposable"/> object representing the scope for which the new colors stays valid.</returns>
        </member>
        <member name="T:Remotion.Utilities.ConsoleUtility.ColorScope">
            <summary>
            Represents a scope with a specific console color. Instantiate this scope via <see cref="M:Remotion.Utilities.ConsoleUtility.EnterColorScope(System.Nullable{System.ConsoleColor},System.Nullable{System.ConsoleColor})"/> unless
            you need to specify a specific <see cref="T:Remotion.Utilities.IConsoleManager"/> implementation.
            </summary>
        </member>
        <member name="T:Remotion.Utilities.CultureScope">
            <summary>
            Represents a scope with a specific culture and UI-culture (see <see cref="T:System.Globalization.CultureInfo"/>). 
            </summary>
            <example>
            Set German culture and Russian user-interface-culture for
            for current thread within using-block, automatically restore previously set cultures
            after using-block:
            <code><![CDATA[
            using (new CultureScope ("de","ru"))
            {
              // Do something with German Culture and Russian UI-Culture here
            }
            ]]></code></example>
        </member>
        <member name="M:Remotion.Utilities.CultureScope.CreateInvariantCultureScope">
            <summary>
            Returns an invariant culture scope, i.e. initialized with <see cref="T:System.Globalization.CultureInfo"/> = <see cref="P:System.Globalization.CultureInfo.InvariantCulture"/>.
            </summary>
        </member>
        <member name="M:Remotion.Utilities.CultureScope.#ctor(System.String,System.String)">
            <summary>
            Intialize <see cref="T:Remotion.Utilities.CultureScope"/> with culture-names-strings, e.g. "de-AT", "en-GB".
            </summary>
            <param name="cultureName">Culture name string. null to not switch culture.</param>
            <param name="uiCultureName">User interface culture name string. null to not switch UI-culture.</param>
        </member>
        <member name="M:Remotion.Utilities.CultureScope.#ctor(System.String)">
            <summary>
            Intialize both the culture and UI-culture with the same culture-name
            </summary>
            <param name="cultureAndUiCultureName">Culture and User interface culture name string.</param>
        </member>
        <member name="M:Remotion.Utilities.CultureScope.#ctor(System.Globalization.CultureInfo,System.Globalization.CultureInfo)">
            <summary>
            Intialize <see cref="T:Remotion.Utilities.CultureScope"/> from <see cref="T:System.Globalization.CultureInfo"/> instances.
            </summary>
            <param name="cultureInfo">Culture to use.</param>
            <param name="uiCultureInfo">User interface culture to use.</param>
        </member>
        <member name="T:Remotion.Utilities.DefaultConsoleManager">
            <summary>
            Provides a default implementation of the <see cref="T:Remotion.Utilities.IConsoleManager"/> interface for the console represented by the <see cref="T:System.Console"/>
            class.
            </summary>
        </member>
        <member name="T:Remotion.Utilities.IConsoleManager">
            <summary>
            Provides an API for manipulating the Console. This abstracts the <see cref="T:System.Console"/> class and thus enables unit testing of
            console-dependent code even when there is no console as well as use of multiple consoles at the same time.
            </summary>
        </member>
        <member name="P:Remotion.Utilities.IConsoleManager.ForegroundColor">
            <summary>
            Gets or sets the foreground color of the console.
            </summary>
            <value>The console's foreground color.</value>
        </member>
        <member name="P:Remotion.Utilities.IConsoleManager.BackgroundColor">
            <summary>
            Gets or sets the background color of the console.
            </summary>
            <value>The console's background color.</value>
        </member>
        <member name="F:Remotion.Utilities.DefaultConsoleManager.Instance">
            <summary>
            The single instance of this class.
            </summary>
        </member>
        <member name="P:Remotion.Utilities.DefaultConsoleManager.ForegroundColor">
            <summary>
            Gets or sets the foreground color of the console.
            </summary>
            <value>The console's foreground color. Returns <see cref="F:System.ConsoleColor.Gray"/> if there is no console attached to the current process.</value>
        </member>
        <member name="P:Remotion.Utilities.DefaultConsoleManager.BackgroundColor">
            <summary>
            Gets or sets the background color of the console.
            </summary>
            <value>The console's background color. Returns <see cref="F:System.ConsoleColor.Black"/> if there is no console attached to the current process.</value>
        </member>
        <member name="T:Remotion.FunctionalProgramming.EnumerableUtility">
            <summary>
            Provides helper functions for <see cref="T:System.Collections.Generic.IEnumerable`1"/> objects.
            </summary>
            <remarks>
            Most of these methods will become obsolete with C# 3.0/LINQ.
            </remarks>
        </member>
        <member name="M:Remotion.FunctionalProgramming.EnumerableUtility.Combine``1(System.Collections.Generic.IEnumerable{``0}[])">
            <summary>
            Combines the specified <see cref="T:System.Collections.Generic.IEnumerable`1"/> sequences into a single sequence.
            </summary>
            <typeparam name="T">The item type of the sequences to combine.</typeparam>
            <param name="sources">The source sequences to combine.</param>
            <returns>A single sequence yielding the items of each source sequence in the same order in which they were passed via the 
            <paramref name="sources"/> parameter.</returns>
        </member>
        <member name="M:Remotion.FunctionalProgramming.EnumerableUtility.Singleton``1(``0)">
            <summary>
            Creates an <see cref="T:System.Collections.Generic.IEnumerable`1"/> containing <paramref name="item"/> as its single element.
            </summary>
            <typeparam name="TItem">The type of the <paramref name="item"/> element.</typeparam>
            <param name="item">The object to be added to the sequence. Can be <see langword="null"/>.</param>
            <returns>A sequence containing only the <paramref name="item"/> element.</returns>
        </member>
        <member name="M:Remotion.FunctionalProgramming.EnumerableUtility.SelectRecursiveDepthFirst``1(``0,System.Func{``0,System.Collections.Generic.IEnumerable{``0}})">
            <summary>
            Recursively select items from a tree data structure defined by a start element and a child selector function. 
            Iterating the resulting sequence performs a depth-first traversal of the data structure.
            </summary>
            <typeparam name="T">The item type to select.</typeparam>
            <param name="start">The item to start with.</param>
            <param name="childrenSelector">A selector function that returns the child items of a given parent item.</param>
            <returns>A sequence containing all items in the tree in a depth-first order.</returns>
        </member>
        <member name="T:Remotion.Utilities.EqualityUtility">
            <summary>
            Provides methods for determining equality and hash codes.
            </summary>
        </member>
        <member name="M:Remotion.Utilities.EqualityUtility.SafeGetHashCode``1(``0)">
            <summary>
            Gets an object's hash code or null, if the object is <see langword="null"/>.
            </summary>
        </member>
        <member name="M:Remotion.Utilities.EqualityUtility.GetRotatedHashCode``2(``0,``1)">
            <summary>
      Gets the hash code of the individual arguments, XOR'd with bits rotated.
    </summary><remarks>
      <para>
        This method XOR's the hash codes of all individual arguments in order to create a compound hash code
        for the entire set of arguments. Between XOR's, the compound hash code is rotated by 11 bits in order
        to better distribute hash codes of types that aggregate their hash results toward the least-significant
        side of the result (small numbers, booleans).
      </para>
      <para>
        Overloads with type arguments are identical to the object-array version, they only reduce the amount
        of boxing going on (better performance).
      </para>
    </remarks>
        </member>
        <member name="M:Remotion.Utilities.EqualityUtility.GetRotatedHashCode``3(``0,``1,``2)">
            <summary>
      Gets the hash code of the individual arguments, XOR'd with bits rotated.
    </summary><remarks>
      <para>
        This method XOR's the hash codes of all individual arguments in order to create a compound hash code
        for the entire set of arguments. Between XOR's, the compound hash code is rotated by 11 bits in order
        to better distribute hash codes of types that aggregate their hash results toward the least-significant
        side of the result (small numbers, booleans).
      </para>
      <para>
        Overloads with type arguments are identical to the object-array version, they only reduce the amount
        of boxing going on (better performance).
      </para>
    </remarks>
        </member>
        <member name="M:Remotion.Utilities.EqualityUtility.GetRotatedHashCode``4(``0,``1,``2,``3)">
            <summary>
      Gets the hash code of the individual arguments, XOR'd with bits rotated.
    </summary><remarks>
      <para>
        This method XOR's the hash codes of all individual arguments in order to create a compound hash code
        for the entire set of arguments. Between XOR's, the compound hash code is rotated by 11 bits in order
        to better distribute hash codes of types that aggregate their hash results toward the least-significant
        side of the result (small numbers, booleans).
      </para>
      <para>
        Overloads with type arguments are identical to the object-array version, they only reduce the amount
        of boxing going on (better performance).
      </para>
    </remarks>
        </member>
        <member name="M:Remotion.Utilities.EqualityUtility.GetRotatedHashCode``5(``0,``1,``2,``3,``4)">
            <summary>
      Gets the hash code of the individual arguments, XOR'd with bits rotated.
    </summary><remarks>
      <para>
        This method XOR's the hash codes of all individual arguments in order to create a compound hash code
        for the entire set of arguments. Between XOR's, the compound hash code is rotated by 11 bits in order
        to better distribute hash codes of types that aggregate their hash results toward the least-significant
        side of the result (small numbers, booleans).
      </para>
      <para>
        Overloads with type arguments are identical to the object-array version, they only reduce the amount
        of boxing going on (better performance).
      </para>
    </remarks>
        </member>
        <member name="M:Remotion.Utilities.EqualityUtility.GetRotatedHashCode``6(``0,``1,``2,``3,``4,``5)">
            <summary>
      Gets the hash code of the individual arguments, XOR'd with bits rotated.
    </summary><remarks>
      <para>
        This method XOR's the hash codes of all individual arguments in order to create a compound hash code
        for the entire set of arguments. Between XOR's, the compound hash code is rotated by 11 bits in order
        to better distribute hash codes of types that aggregate their hash results toward the least-significant
        side of the result (small numbers, booleans).
      </para>
      <para>
        Overloads with type arguments are identical to the object-array version, they only reduce the amount
        of boxing going on (better performance).
      </para>
    </remarks>
        </member>
        <member name="M:Remotion.Utilities.EqualityUtility.GetRotatedHashCode``7(``0,``1,``2,``3,``4,``5,``6)">
            <summary>
      Gets the hash code of the individual arguments, XOR'd with bits rotated.
    </summary><remarks>
      <para>
        This method XOR's the hash codes of all individual arguments in order to create a compound hash code
        for the entire set of arguments. Between XOR's, the compound hash code is rotated by 11 bits in order
        to better distribute hash codes of types that aggregate their hash results toward the least-significant
        side of the result (small numbers, booleans).
      </para>
      <para>
        Overloads with type arguments are identical to the object-array version, they only reduce the amount
        of boxing going on (better performance).
      </para>
    </remarks>
        </member>
        <member name="M:Remotion.Utilities.EqualityUtility.GetRotatedHashCode(System.Object[])">
            <summary>
      Gets the hash code of the individual arguments, XOR'd with bits rotated.
    </summary><remarks>
      <para>
        This method XOR's the hash codes of all individual arguments in order to create a compound hash code
        for the entire set of arguments. Between XOR's, the compound hash code is rotated by 11 bits in order
        to better distribute hash codes of types that aggregate their hash results toward the least-significant
        side of the result (small numbers, booleans).
      </para>
      <para>
        Overloads with type arguments are identical to the object-array version, they only reduce the amount
        of boxing going on (better performance).
      </para>
    </remarks>
        </member>
        <member name="M:Remotion.Utilities.EqualityUtility.GetRotatedHashCode(System.Collections.IEnumerable)">
            <summary>
            Gets the rotated hash code for an enumeration of objects.
            </summary>
            <param name="objects">The objects whose combined hash code should be calculated.</param>
            <returns>The rotate-combined hash codes of the <paramref name="objects"/>.</returns>
            <exception cref="T:System.ArgumentNullException">The <paramref name="objects"/> parameter was <see langword="null"/>.</exception>
        </member>
        <member name="M:Remotion.Utilities.EqualityUtility.GetXorHashCode(System.Collections.IEnumerable)">
            <summary>
            Gets a hash code for the given enumerable. The hash code is calculated by combining the hash codes of the enumerated objects using the
            XOR operation. This is usually suboptimal to <see cref="M:Remotion.Utilities.EqualityUtility.GetRotatedHashCode(System.Collections.IEnumerable)"/> unless the ordering of enumerated objects
            should explicitly be ignored.
            </summary>
            <param name="objects">The object enumeration for which a hash code should be calculated.</param>
            <returns>The combined hash code of all objects in the enumeration.</returns>
            <remarks>For a given set of objects, this method will always return the same value, regardless of the objects' order.</remarks>
        </member>
        <member name="M:Remotion.Utilities.EqualityUtility.EqualsEquatable``1(``0,``0)">
            <summary>
            Returns whether two equatable objects are equal.
            </summary>
            <remarks>
            Similar to <see cref="M:Remotion.Utilities.EqualityUtility.Equals``1(``0,``0)"/>, but without any boxing (better performance). 
            Equatable objects implement the <see cref="T:System.IEquatable`1"/> interface. 
            </remarks>
        </member>
        <member name="M:Remotion.Utilities.EqualityUtility.EqualsEquatable``1(``0,System.Object)">
            <summary>
            Returns whether an equatable object equals another object.
            </summary>
        </member>
        <member name="M:Remotion.Utilities.EqualityUtility.EqualsEquatableValue``1(``0,System.Object)">
            <summary>
            Returns whether an equatable value-type object equals another object.
            </summary>
        </member>
        <member name="M:Remotion.Utilities.EqualityUtility.Equals``1(``0,``0)">
            <summary>
            Returns whether two objects are equal.
            </summary>
            <remarks>
            Similar to <see cref="M:System.Object.Equals(System.Object,System.Object)"/>, only with less boxing going on (better performance).
            </remarks>
        </member>
        <member name="M:Remotion.Utilities.FileUtility.CopyStream(System.IO.Stream,System.IO.Stream)">
            <summary>
            Copies the complete content of one stream into another.
            </summary>
            <param name="input">The input stream.</param>
            <param name="output">The output stream.</param>
        </member>
        <member name="M:Remotion.Utilities.FileUtility.WriteEmbeddedStringResourceToFile(System.Type,System.String,System.String)">
            <summary>
            Writes a string resource embedded in an assemby into a file with the passed filename.
            </summary>
            <param name="typeWhoseNamespaceTheStringResourceResidesIn"><see cref="T:System.Type"/> in whose assembly and namespace the string resource is located.</param>
            <param name="stringResourceName">Name of the string resource, relative to namespace of the passed <see cref="T:System.Type"/>.</param>
            <param name="filePath">The path of the file the string resource will be written into.</param>
        </member>
        <member name="T:Remotion.Utilities.DelegateBasedComparer`1">
            <summary>
            Implements <see cref="T:System.Collections.Generic.IComparer`1"/> by calling a <see cref="T:System.Comparison`1"/> delegate.
            </summary>
            <typeparam name="T">The type of the objects to be compared.</typeparam>
        </member>
        <member name="T:Remotion.Utilities.InvertedComparerDecorator`1">
            <summary>
            Implements <see cref="T:System.Collections.Generic.IComparer`1"/> as a decorator that inverts (i.e. flips) the arguments of the <see cref="M:System.Collections.Generic.IComparer`1.Compare(`0,`0)"/>
            to invert the result.
            </summary>
            <typeparam name="T">The type of the objects to be compared.</typeparam>
        </member>
        <member name="T:Remotion.Utilities.IUtcNowProvider">
            <summary>
            <see cref="T:Remotion.Utilities.IUtcNowProvider"/> defines an abstraction for clients using the current date and time. Use this to decouple code from the system 
            clock.
            </summary>
        </member>
        <member name="T:Remotion.Utilities.MemberInfoEqualityComparer`1">
            <summary>
            Provides logic to compare two <see cref="T:System.Reflection.MemberInfo"/> for logical equality, without considering the <see cref="P:System.Reflection.MemberInfo.ReflectedType"/>.
            </summary>
        </member>
        <member name="M:Remotion.Utilities.MemberInfoEqualityComparer`1.Equals(`0,`0)">
            <summary>
            Checks two <see cref="T:System.Reflection.MemberInfo"/> instances for logical equality, without considering the <see cref="P:System.Reflection.MemberInfo.ReflectedType"/>.
            </summary>
            <param name="one">The left-hand side <see cref="T:System.Reflection.MemberInfo"/> to compare.</param>
            <param name="two">The right-hand side <see cref="T:System.Reflection.MemberInfo"/> to compare.</param>
            <returns>
            <para>
            True if the two <see cref="T:System.Reflection.MemberInfo"/> objects are logically equivalent, ie., if they represent the same <see cref="T:System.Reflection.MemberInfo"/>.
            This is very similar to the <see cref="M:System.Object.Equals(System.Object)"/> implementation of <see cref="T:System.Reflection.MemberInfo"/> objects, but it ignores the
            <see cref="P:System.Reflection.MemberInfo.ReflectedType"/> property. In effect, two members compare equal if they are declared by the same type and
            denote the same member on that type. For generic <see cref="T:System.Reflection.MethodInfo"/> objects, the generic arguments must be the same.
            </para>
            <para>
            The idea for this method, but not the code, was taken from http://blogs.msdn.com/b/kingces/archive/2005/08/17/452774.aspx.
            </para>
            </returns>
        </member>
        <member name="M:Remotion.Utilities.MemberInfoEqualityComparer`1.GetHashCode(`0)">
            <summary>
            Returns the hash code for the given <see cref="T:System.Reflection.MemberInfo"/>. To calculate the hash code, the hash codes of the declaring type, 
            metadata token and module of the <see cref="T:System.Reflection.MemberInfo"/> are combined. If the declaring type is an array, the name of the 
            <see cref="T:System.Reflection.MemberInfo"/> is used instead of the metadata token.
            </summary>
            <param name="memberInfo">The <see cref="T:System.Reflection.MemberInfo"/> for which the hash code should be calculated.</param>
            <returns>The calculated hash code of the <see cref="T:System.Reflection.MemberInfo"/>.</returns>
        </member>
        <member name="T:Remotion.Utilities.MemberInfoFromExpressionUtility">
            <summary>
            Provides typed access to the reflection objects for members referenced in <see cref="T:System.Linq.Expressions.Expression"/> instances.
            </summary>
            <remarks>
            Note that this utility just extracts the <see cref="T:System.Reflection.MemberInfo"/> instance referenced in the expression.
            For methods and properties the returned object might be different from the one specified by the user.
            This is because the C# compiler always puts the base definition of overriding methods and properties into the expression.
            </remarks>
        </member>
        <member name="M:Remotion.Utilities.NullableTypeUtility.IsNullableType(System.Type)">
            <summary>
            Determines whether a type is nullable, ie. whether variables of it can be assigned <see langword="null"/>.
            </summary>
            <param name="type">The type to check.</param>
            <returns>
            true if <paramref name="type"/> is nullable; otherwise, false.
            </returns>
            <remarks>
            A type is nullable if it is a reference type or a nullable value type. This method returns false only for non-nullable value types.
            </remarks>
        </member>
        <member name="T:Remotion.Utilities.NullComparer`1">
            <summary>
            <see cref="T:Remotion.INullObject"/> implementation for <see cref="T:System.Collections.Generic.IComparer`1"/>.
            </summary>
            <typeparam name="T"></typeparam>
        </member>
        <member name="T:Remotion.Utilities.NullValueConverter">
            <summary>
            The <see cref="T:Remotion.Utilities.NullValueConverter"/> can convert "null" between nullable types.
            </summary>
        </member>
        <member name="T:Remotion.Utilities.PostActionDisposableDecorator">
            <summary>
            Decorates an <see cref="T:System.IDisposable"/> and adds a post-<see cref="M:System.IDisposable.Dispose"/> <see cref="T:System.Action"/>. This is especially useful
            in order to extend a scope object, represented as an <see cref="T:System.IDisposable"/>, with additional cleanup logic.
            </summary>
            <remarks>
            The post action is executed even when the inner <see cref="T:System.IDisposable"/> throws an exception. It does not swallow the original exception, though.
            </remarks>
        </member>
        <member name="T:Remotion.Utilities.ReferenceEqualityComparer`1">
            <summary>      
            An equality comparer that compares equality using ReferenceEquals rather than Equals. This is to ensure that two objects are actually the same 
            and not just equal for reference checking purposes.      
            </summary>      
            <typeparam name="T">the type of object to check</typeparam>  
        </member>
        <member name="T:JetBrains.Annotations.AssertionConditionAttribute">
            <summary>
            Indicates the condition parameter of the assertion method. 
            The method itself should be marked by <see cref="T:JetBrains.Annotations.AssertionMethodAttribute"/> attribute.
            The mandatory argument of the attribute is the assertion type.
            </summary>
            <seealso cref="T:JetBrains.Annotations.AssertionConditionType"/>
        </member>
        <member name="M:JetBrains.Annotations.AssertionConditionAttribute.#ctor(JetBrains.Annotations.AssertionConditionType)">
            <summary>
            Initializes new instance of AssertionConditionAttribute
            </summary>
            <param name="conditionType">Specifies condition type</param>
        </member>
        <member name="P:JetBrains.Annotations.AssertionConditionAttribute.ConditionType">
            <summary>
            Gets condition type
            </summary>
        </member>
        <member name="T:JetBrains.Annotations.AssertionConditionType">
            <summary>
            Specifies assertion type. If the assertion method argument satisifes the condition, then the execution continues. 
            Otherwise, execution is assumed to be halted
            </summary>
        </member>
        <member name="F:JetBrains.Annotations.AssertionConditionType.IS_TRUE">
            <summary>
            Indicates that the marked parameter should be evaluated to true
            </summary>
        </member>
        <member name="F:JetBrains.Annotations.AssertionConditionType.IS_FALSE">
            <summary>
            Indicates that the marked parameter should be evaluated to false
            </summary>
        </member>
        <member name="F:JetBrains.Annotations.AssertionConditionType.IS_NULL">
            <summary>
            Indicates that the marked parameter should be evaluated to null value
            </summary>
        </member>
        <member name="F:JetBrains.Annotations.AssertionConditionType.IS_NOT_NULL">
            <summary>
            Indicates that the marked parameter should be evaluated to not null value
            </summary>
        </member>
        <member name="T:JetBrains.Annotations.AssertionMethodAttribute">
            <summary>
            Indicates that the marked method is assertion method, i.e. it halts control flow if one of the conditions is satisfied. 
            To set the condition, mark one of the parameters with <see cref="T:JetBrains.Annotations.AssertionConditionAttribute"/> attribute
            </summary>
            <seealso cref="T:JetBrains.Annotations.AssertionConditionAttribute"/>
        </member>
        <member name="T:JetBrains.Annotations.BaseTypeRequiredAttribute">
            <summary>
            When applied to target attribute, specifies a requirement for any type which is marked with 
            target attribute to implement or inherit specific type or types
            </summary>
            <example>
            <code>
            [BaseTypeRequired(typeof(IComponent)] // Specify requirement
            public class ComponentAttribute : Attribute 
            {}
            
            [Component] // ComponentAttribute requires implementing IComponent interface
            public class MyComponent : IComponent
            {}
            </code>
            </example>
        </member>
        <member name="M:JetBrains.Annotations.BaseTypeRequiredAttribute.#ctor(System.Type)">
            <summary>
            Initializes new instance of BaseTypeRequiredAttribute
            </summary>
            <param name="baseType">Specifies which types are required</param>
        </member>
        <member name="P:JetBrains.Annotations.BaseTypeRequiredAttribute.BaseTypes">
            <summary>
            Gets enumerations of specified base types
            </summary>
        </member>
        <member name="T:JetBrains.Annotations.CanBeNullAttribute">
            <summary>
            Indicates that the value of marked element could be <c>null</c> sometimes, so the check for <c>null</c> is necessary before its usage
            </summary>
        </member>
        <member name="T:JetBrains.Annotations.CannotApplyEqualityOperatorAttribute">
            <summary>
            Indicates that the value of marked type (or its derivatives) cannot be compared using '==' or '!=' operators.
            There is only exception to compare with <c>null</c>, it is permitted
            </summary>
        </member>
        <member name="T:JetBrains.Annotations.ContractAnnotationAttribute">
            <summary>
            Describes dependency between method input and output
            </summary>
            <syntax>
            <p>Function definition table syntax:</p>
            <list>
            <item>FDT      ::= FDTRow [;FDTRow]*</item>
            <item>FDTRow   ::= Input =&gt; Output | Output &lt;= Input</item>
            <item>Input    ::= ParameterName: Value [, Input]*</item>
            <item>Output   ::= [ParameterName: Value]* {halt|stop|void|nothing|Value}</item>
            <item>Value    ::= true | false | null | notnull | canbenull</item>
            </list>
            If method has single input parameter, it's name could be omitted. <br/>
            Using "halt" (or "void"/"nothing", which is the same) for method output means that methos doesn't return normally. <br/>
            "canbenull" annotation is only applicable for output parameters. <br/>
            You can use multiple [ContractAnnotation] for each FDT row, or use single attribute with rows separated by semicolon. <br/>
            </syntax>
            <examples>
            <list>
            <item>[ContractAnnotation("=> halt")] public void TerminationMethod()</item>
            <item>[ContractAnnotation("halt &lt;= condition: false")] public void Assert(bool condition, string text) // Regular Assertion method</item>
            <item>[ContractAnnotation("s:null => true")] public bool IsNullOrEmpty(string s) // String.IsNullOrEmpty</item>
            <item>[ContractAnnotation("null => null; notnull => notnull")] public object Transform(object data) // Method which returns null if parameter is null, and not null if parameter is not null</item>
            <item>[ContractAnnotation("s:null=>false; =>true,result:notnull; =>false, result:null")] public bool TryParse(string s, out Person result)</item>
            </list>
            </examples>
        </member>
        <member name="F:JetBrains.Annotations.ImplicitUseKindFlags.Access">
            <summary>
            Only entity marked with attribute considered used
            </summary>
        </member>
        <member name="F:JetBrains.Annotations.ImplicitUseKindFlags.Assign">
            <summary>
            Indicates implicit assignment to a member
            </summary>
        </member>
        <member name="F:JetBrains.Annotations.ImplicitUseKindFlags.InstantiatedWithFixedConstructorSignature">
            <summary>
            Indicates implicit instantiation of a type with fixed constructor signature.
            That means any unused constructor parameters won't be reported as such.
            </summary>
        </member>
        <member name="F:JetBrains.Annotations.ImplicitUseKindFlags.InstantiatedNoFixedConstructorSignature">
            <summary>
            Indicates implicit instantiation of a type
            </summary>
        </member>
        <member name="T:JetBrains.Annotations.ImplicitUseTargetFlags">
            <summary>
            Specify what is considered used implicitly when marked with <see cref="T:JetBrains.Annotations.MeansImplicitUseAttribute"/> or <see cref="T:JetBrains.Annotations.UsedImplicitlyAttribute"/>
            </summary>
        </member>
        <member name="F:JetBrains.Annotations.ImplicitUseTargetFlags.Members">
            <summary>
            Members of entity marked with attribute are considered used
            </summary>
        </member>
        <member name="F:JetBrains.Annotations.ImplicitUseTargetFlags.WithMembers">
            <summary>
            Entity marked with attribute and all its members considered used
            </summary>
        </member>
        <member name="T:JetBrains.Annotations.InstantHandleAttribute">
            <summary>
            Tells code analysis engine if the parameter is completely handled when the invoked method is on stack. 
            If the parameter is delegate, indicates that delegate is executed while the method is executed.
            If the parameter is enumerable, indicates that it is enumerated while the method is executed.
            </summary>
        </member>
        <member name="T:JetBrains.Annotations.InvokerParameterNameAttribute">
            <summary>
            Indicates that the function argument should be string literal and match one of the parameters of the caller function.
            For example, <see cref="T:System.ArgumentNullException"/> has such parameter.
            </summary>
        </member>
        <member name="T:JetBrains.Annotations.LinqTunnelAttribute">
            <summary>
            Indicates that method is *pure* linq method, with postponed enumeration. C# iterator methods (yield ...) are always LinqTunnel.
            </summary>
        </member>
        <member name="T:JetBrains.Annotations.LocalizationRequiredAttribute">
            <summary>
            Indicates that marked element should be localized or not.
            </summary>
        </member>
        <member name="M:JetBrains.Annotations.LocalizationRequiredAttribute.#ctor">
            <summary>
            Initializes a new instance of the <see cref="T:JetBrains.Annotations.LocalizationRequiredAttribute"/> class with
            <see cref="P:JetBrains.Annotations.LocalizationRequiredAttribute.Required"/> set to <see langword="true"/>.
            </summary>
        </member>
        <member name="M:JetBrains.Annotations.LocalizationRequiredAttribute.#ctor(System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:JetBrains.Annotations.LocalizationRequiredAttribute"/> class.
            </summary>
            <param name="required"><c>true</c> if a element should be localized; otherwise, <c>false</c>.</param>
        </member>
        <member name="M:JetBrains.Annotations.LocalizationRequiredAttribute.Equals(System.Object)">
            <summary>
            Returns whether the value of the given object is equal to the current <see cref="T:JetBrains.Annotations.LocalizationRequiredAttribute"/>.
            </summary>
            <param name="obj">The object to test the value equality of. </param>
            <returns>
            <c>true</c> if the value of the given object is equal to that of the current; otherwise, <c>false</c>.
            </returns>
        </member>
        <member name="M:JetBrains.Annotations.LocalizationRequiredAttribute.GetHashCode">
            <summary>
            Returns the hash code for this instance.
            </summary>
            <returns>A hash code for the current <see cref="T:JetBrains.Annotations.LocalizationRequiredAttribute"/>.</returns>
        </member>
        <member name="P:JetBrains.Annotations.LocalizationRequiredAttribute.Required">
            <summary>
            Gets a value indicating whether a element should be localized.
            <value><c>true</c> if a element should be localized; otherwise, <c>false</c>.</value>
            </summary>
        </member>
        <member name="T:JetBrains.Annotations.MeansImplicitUseAttribute">
            <summary>
            Should be used on attributes and causes ReSharper to not mark symbols marked with such attributes as unused (as well as by other usage inspections)
            </summary>
        </member>
        <member name="P:JetBrains.Annotations.MeansImplicitUseAttribute.TargetFlags">
            <summary>
            Gets value indicating what is meant to be used
            </summary>
        </member>
        <member name="T:JetBrains.Annotations.NoEnumerationAttribute">
            <summary>
            Indicates that IEnumarable, passed as parameter, is not enumerated.
            
            </summary>
        </member>
        <member name="T:JetBrains.Annotations.NotifyPropertyChangedInvocatorAttribute">
            <summary>
            Indicates that the function is used to notify class type property value is changed.
            </summary>
        </member>
        <member name="T:JetBrains.Annotations.NotNullAttribute">
            <summary>
            Indicates that the value of marked element could never be <c>null</c>
            </summary>
        </member>
        <member name="T:JetBrains.Annotations.PublicAPIAttribute">
            <summary>
            This attribute is intended to mark publicly available API which should not be removed and so is treated as used.
            </summary>
        </member>
        <member name="T:JetBrains.Annotations.PureAttribute">
            <summary>
            Indicates that method doesn't contain observable side effects.
            </summary>
        </member>
        <member name="T:JetBrains.Annotations.StringFormatMethodAttribute">
            <summary>
            Indicates that marked method builds string by format pattern and (optional) arguments. 
            Parameter, which contains format string, should be given in constructor.
            The format string should be in <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> -like form
            </summary>
        </member>
        <member name="M:JetBrains.Annotations.StringFormatMethodAttribute.#ctor(System.String)">
            <summary>
            Initializes new instance of StringFormatMethodAttribute
            </summary>
            <param name="formatParameterName">Specifies which parameter of an annotated method should be treated as format-string</param>
        </member>
        <member name="P:JetBrains.Annotations.StringFormatMethodAttribute.FormatParameterName">
            <summary>
            Gets format parameter name
            </summary>
        </member>
        <member name="T:JetBrains.Annotations.TerminatesProgramAttribute">
            <summary>
            Indicates that the marked method unconditionally terminates control flow execution.
            For example, it could unconditionally throw exception
            </summary>
        </member>
        <member name="T:JetBrains.Annotations.UsedImplicitlyAttribute">
            <summary>
            Indicates that the marked symbol is used implicitly (e.g. via reflection, in external library),
            so this symbol will not be marked as unused (as well as by other usage inspections)
            </summary>
        </member>
        <member name="P:JetBrains.Annotations.UsedImplicitlyAttribute.TargetFlags">
            <summary>
            Gets value indicating what is meant to be used
            </summary>
        </member>
        <member name="T:Remotion.Utilities.StopwatchScope">
            <summary>
            Provides a simple way of timing a piece of code wrapped into a <c>using</c> block. At the end of the block or at a checkpoint, an action is 
            performed or a log message written.
            </summary>
        </member>
        <member name="M:Remotion.Utilities.StopwatchScope.CreateScope(Remotion.Utilities.StopwatchScope.MeasurementAction)">
            <summary>
            Creates a <see cref="T:Remotion.Utilities.StopwatchScope"/> that measures the time, executing the given
            <paramref name="action"/> when the scope is disposed or when a <see cref="M:Remotion.Utilities.StopwatchScope.Checkpoint(System.String)"/> is reached.
            </summary>
            <param name="action">The <see cref="T:Remotion.Utilities.StopwatchScope.MeasurementAction"/> to receive the result. Takes the following arguments: 
            <c>string context, StopwatchScope scope</c>. Use <see cref="P:Remotion.Utilities.StopwatchScope.ElapsedTotal"/> and
            <see cref="P:Remotion.Utilities.StopwatchScope.ElapsedSinceLastCheckpoint"/> to retrieve the elapsed time. When the scope is disposed, the context parameter
            is set to the string "end".
            </param>
            <returns>
            A <see cref="T:Remotion.Utilities.StopwatchScope"/> that measures the time.
            </returns>
        </member>
        <member name="M:Remotion.Utilities.StopwatchScope.CreateScope(System.IO.TextWriter,System.String)">
            <summary>
            Creates a <see cref="T:Remotion.Utilities.StopwatchScope"/> that measures the time, writing the result to the given 
            <paramref name="writer"/> when the scope is disposed or a <see cref="M:Remotion.Utilities.StopwatchScope.Checkpoint(System.String)"/> is reached.
            </summary>
            <param name="writer">The writer to receive the result.</param>
            <param name="formatString">A string to format the result with. The string can contain the following placeholders:
            <list type="bullet">
            <item>
              <c>{context}</c> Replaced with the context string passed to <see cref="M:Remotion.Utilities.StopwatchScope.Checkpoint(System.String)"/>. At the end of the scope, this is the string "end".
            </item>
            <item>
              <c>{elapsed}</c> Replaced with the standard string representation of <see cref="P:Remotion.Utilities.StopwatchScope.ElapsedTotal"/>.
            </item>
            <item>
              <c>{elapsed:ms}</c> Replaced with <see cref="P:Remotion.Utilities.StopwatchScope.ElapsedTotal"/>, using <see cref="P:System.TimeSpan.TotalMilliseconds"/> to obtain the 
              number of milliseconds elapsed since the last checkpoint.
            </item>
            <item>
              <c>{elapsedCP}</c> Replaced with the standard string representation of <see cref="P:Remotion.Utilities.StopwatchScope.ElapsedSinceLastCheckpoint"/>.
            </item>
            <item>
              <c>{elapsedCP:ms}</c> Replaced with <see cref="P:Remotion.Utilities.StopwatchScope.ElapsedSinceLastCheckpoint"/>, using <see cref="P:System.TimeSpan.TotalMilliseconds"/> to obtain the 
              number of milliseconds elapsed since the last checkpoint.
            </item>
            </list>
            </param>
            <returns>A <see cref="T:Remotion.Utilities.StopwatchScope"/> that measures the time and writes it to a <see cref="T:System.IO.TextWriter"/>.</returns>
        </member>
        <member name="M:Remotion.Utilities.StopwatchScope.CreateScope(Remotion.Logging.ILog,Remotion.Logging.LogLevel,System.String)">
            <summary>
            Creates a <see cref="T:Remotion.Utilities.StopwatchScope"/> that measures the time, writing the result to the given
            <paramref name="log"/> when the scope is disposed or a <see cref="M:Remotion.Utilities.StopwatchScope.Checkpoint(System.String)"/> is reached.
            </summary>
            <param name="log">The <see cref="T:Remotion.Logging.ILog"/> to receive the result.</param>
            <param name="logLevel">The log level to log the result with.</param>
            <param name="formatString">A string to format the result with. The string can contain the following placeholders:
            <list type="bullet">
            <item>
              <c>{context}</c> Replaced with the context string passed to <see cref="M:Remotion.Utilities.StopwatchScope.Checkpoint(System.String)"/>. At the end of the scope, this contains the string "end".
            </item>
            <item>
              <c>{elapsed}</c> Replaced with the standard string representation of <see cref="P:Remotion.Utilities.StopwatchScope.ElapsedTotal"/>.
            </item>
            <item>
              <c>{elapsed:ms}</c> Replaced with <see cref="P:Remotion.Utilities.StopwatchScope.ElapsedTotal"/>, using <see cref="P:System.TimeSpan.TotalMilliseconds"/> to obtain the 
              number of milliseconds elapsed since the last checkpoint.
            </item>
            <item>
              <c>{elapsedCP}</c> Replaced with the standard string representation of <see cref="P:Remotion.Utilities.StopwatchScope.ElapsedSinceLastCheckpoint"/>.
            </item>
            <item>
              <c>{elapsedCP:ms}</c> Replaced with <see cref="P:Remotion.Utilities.StopwatchScope.ElapsedSinceLastCheckpoint"/>, using <see cref="P:System.TimeSpan.TotalMilliseconds"/> to obtain the 
              number of milliseconds elapsed since the last checkpoint.
            </item>
            </list>
            </param>
            <returns>
            A <see cref="T:Remotion.Utilities.StopwatchScope"/> that measures the time in milliseconds.
            </returns>
        </member>
        <member name="M:Remotion.Utilities.StopwatchScope.CreateScope(System.String)">
            <summary>
            Creates a <see cref="T:Remotion.Utilities.StopwatchScope"/> that measures the time, writing the result to the <see cref="T:System.Console"/> when the scope is disposed or 
            a <see cref="M:Remotion.Utilities.StopwatchScope.Checkpoint(System.String)"/> is reached.
            </summary>
            <param name="formatString">A string to format the result with. The string can contain the following placeholders:
            <list type="bullet">
            <item>
              <c>{context}</c> Replaced with the context string passed to <see cref="M:Remotion.Utilities.StopwatchScope.Checkpoint(System.String)"/>. At the end of the scope, this contains the string "end".
            </item>
            <item>
              <c>{elapsed}</c> Replaced with the standard string representation of <see cref="P:Remotion.Utilities.StopwatchScope.ElapsedTotal"/>.
            </item>
            <item>
              <c>{elapsed:ms}</c> Replaced with <see cref="P:Remotion.Utilities.StopwatchScope.ElapsedTotal"/>, using <see cref="P:System.TimeSpan.TotalMilliseconds"/> to obtain the 
              number of milliseconds elapsed since the last checkpoint.
            </item>
            <item>
              <c>{elapsedCP}</c> Replaced with the standard string representation of <see cref="P:Remotion.Utilities.StopwatchScope.ElapsedSinceLastCheckpoint"/>.
            </item>
            <item>
              <c>{elapsedCP:ms}</c> Replaced with <see cref="P:Remotion.Utilities.StopwatchScope.ElapsedSinceLastCheckpoint"/>, using <see cref="P:System.TimeSpan.TotalMilliseconds"/> to obtain the 
              number of milliseconds elapsed since the last checkpoint.
            </item>
            </list>
            </param>
            <returns>
            A <see cref="T:Remotion.Utilities.StopwatchScope"/> that measures the time in milliseconds.
            </returns>
        </member>
        <member name="M:Remotion.Utilities.StopwatchScope.Dispose">
            <summary>
            Stops measuring the time and invokes the time measurement action defined when creating the scope.
            </summary>
        </member>
        <member name="M:Remotion.Utilities.StopwatchScope.Checkpoint(System.String)">
            <summary>
            Triggers a checkpoint, invoking the action the time measurement action defined when creating the scope with the given <paramref name="context"/>.
            </summary>
            <param name="context">The context information to pass to the action.</param>
        </member>
        <member name="M:Remotion.Utilities.StopwatchScope.Pause">
            <summary>
            Pauses the time measurement. Resume it with <see cref="M:Remotion.Utilities.StopwatchScope.Resume"/>. If the measurement is already paused, this method does nothing.
            </summary>
        </member>
        <member name="M:Remotion.Utilities.StopwatchScope.Resume">
            <summary>
            Resumes the time measurement after it has been paused with <see cref="M:Remotion.Utilities.StopwatchScope.Pause"/>. If the measurement is not paused, this method does nothing.
            </summary>
        </member>
        <member name="P:Remotion.Utilities.StopwatchScope.ElapsedTotal">
            <summary>
            Gets the time elapsed since the construction of this <see cref="T:Remotion.Utilities.StopwatchScope"/> until now or the point of time where <see cref="M:Remotion.Utilities.StopwatchScope.Dispose"/> 
            was called, whichever occurs first.
            </summary>
            <value>The total elapsed time.</value>
        </member>
        <member name="P:Remotion.Utilities.StopwatchScope.ElapsedSinceLastCheckpoint">
            <summary>
            Gets the time elapsed since the last call to <see cref="M:Remotion.Utilities.StopwatchScope.Checkpoint(System.String)"/> (or the construction of this <see cref="T:Remotion.Utilities.StopwatchScope"/> if no 
            checkpoint has been created) until now. If the scope has been disposed, this is <see cref="F:System.TimeSpan.Zero"/>.
            </summary>
            <value>The elapsed time since the last checkpoint.</value>
        </member>
        <member name="T:Remotion.Utilities.StopwatchScope.MeasurementAction">
            <summary>
            Defines an action to be called whenever a checkpoint is reached or the <see cref="T:Remotion.Utilities.StopwatchScope"/> is disposed.
            </summary>
            <param name="context">The context in which the action is invoked. This corresponds to the parameter given to 
            <see cref="M:Remotion.Utilities.StopwatchScope.Checkpoint(System.String)"/>.</param>
            <param name="scope">The <see cref="T:Remotion.Utilities.StopwatchScope"/> triggering the action. Use <see cref="P:Remotion.Utilities.StopwatchScope.ElapsedTotal"/> and
            <see cref="P:Remotion.Utilities.StopwatchScope.ElapsedSinceLastCheckpoint"/> to retrieve the elapsed time.</param>
        </member>
        <member name="T:Remotion.Utilities.TypeConverterResult">
            <summary>
            The <see cref="T:Remotion.Utilities.TypeConverterResult"/> structure encapsulates the reult of the <see cref="M:Remotion.Utilities.TypeConversionProvider.GetTypeConverter(System.Type,System.Type)"/>
            method.
            </summary>
        </member>
        <member name="T:Remotion.Utilities.TypeConverterType">
            <summary>
            The <see cref="T:Remotion.Utilities.TypeConverterType"/> enum describes whether a <see cref="T:System.ComponentModel.TypeConverter"/> is to be used fro mthe source or the destination type.
            </summary>
        </member>
        <member name="T:Remotion.Utilities.AdvancedEnumConverter">
            <summary> Specialization of <see cref="T:System.ComponentModel.TypeConverter"/> for conversions from and to <see cref="T:System.Enum"/> types. </summary>
        </member>
        <member name="M:Remotion.Utilities.AdvancedEnumConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary> Test: Can convert from <paramref name="sourceType"/> to <see cref="T:System.String"/>? </summary>
            <param name="context"> An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. </param>
            <param name="sourceType"> The <see cref="T:System.Type"/> of the value to be converted into an <see cref="T:System.Enum"/> type. </param>
            <returns> <see langword="true"/> if the conversion is supported. </returns>
        </member>
        <member name="M:Remotion.Utilities.AdvancedEnumConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary> Test: Can convert from <see cref="T:System.String"/> to <paramref name="destinationType"/>? </summary>
            <param name="context"> An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. </param>
            <param name="destinationType"> The <see cref="T:System.Type"/> to convert an <see cref="T:System.Enum"/> value to. </param>
            <returns> <see langword="true"/> if the conversion is supported. </returns>
        </member>
        <member name="M:Remotion.Utilities.AdvancedEnumConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
            <summary> Converts <paramref name="value"/> into an <see cref="T:System.Enum"/> value. </summary>
            <param name="context"> An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. </param>
            <param name="culture"> The <see cref="T:System.Globalization.CultureInfo"/> to use as the current culture. </param>
            <param name="value"> The source value. </param>
            <returns> An <see cref="T:System.Enum"/> value.  </returns>
            <exception cref="T:System.NotSupportedException"> The conversion could not be performed. </exception>
        </member>
        <member name="M:Remotion.Utilities.AdvancedEnumConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
            <summary> Convertes an <see cref="T:System.Enum"/> value into the <paramref name="destinationType"/>. </summary>
            <param name="context"> An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. </param>
            <param name="culture"> The <see cref="T:System.Globalization.CultureInfo"/> to use as the current culture. </param>
            <param name="value"> The <see cref="T:System.Enum"/> value to be converted. </param>
            <param name="destinationType"> The destination <see cref="T:System.Type"/>. Must not be <see langword="null"/>. </param>
            <returns> An <see cref="T:System.Object"/> that represents the converted value. </returns>
            <exception cref="T:System.NotSupportedException"> The conversion could not be performed. </exception>
        </member>
        <member name="P:Remotion.Utilities.AdvancedEnumConverter.EnumType">
            <summary>
            Gets the <see cref="T:System.Type"/> this converter is associated with, as it was passed to this <see cref="T:Remotion.Utilities.AdvancedEnumConverter"/>'s constructor.
            This can be an <see cref="T:System.Enum"/> type or a nullable <see cref="T:System.Enum"/> type.
            </summary>
            <returns>
            The <see cref="T:System.Type"/> this converter is associated with, as it was passed to this <see cref="T:Remotion.Utilities.AdvancedEnumConverter"/>'s constructor.
            </returns>
        </member>
        <member name="P:Remotion.Utilities.AdvancedEnumConverter.UnderlyingEnumType">
            <summary>
            Gets the <see cref="T:System.Enum"/> <see cref="T:System.Type"/> this converter is associated with. If a nullable type was passed to this 
            <see cref="T:Remotion.Utilities.AdvancedEnumConverter"/>'s constructor, this property returns the actual <see cref="T:System.Enum"/> type underlying the nullable type.
            Otherwise, it returns the same as <see cref="P:Remotion.Utilities.AdvancedEnumConverter.EnumType"/>.
            </summary>
            <returns>
            The <see cref="T:System.Enum"/> <see cref="T:System.Type"/> this converter is associated with.
            </returns>
        </member>
        <member name="P:Remotion.Utilities.AdvancedEnumConverter.IsNullable">
            <summary>
            Gets a value indicating whether this instance is associated with a nullable <see cref="T:System.Enum"/>.
            </summary>
            <returns>
            	<see langword="true"/> if <see cref="P:Remotion.Utilities.AdvancedEnumConverter.EnumType"/> is nullable; otherwise, <see langword="false"/>.
            </returns>
        </member>
        <member name="T:Remotion.Utilities.ArgumentUtility">
            <summary>
            This utility class provides methods for checking arguments.
            </summary>
            <remarks>
            Some methods of this class return the value of the parameter. In some cases, this is useful because the value will be converted to another 
            type:
            <code><![CDATA[
            void foo (object o) 
            {
              int i = ArgumentUtility.CheckNotNullAndType<int> ("o", o);
            }
            ]]></code>
            In some other cases, the input value is returned unmodified. This makes it easier to use the argument checks in calls to base class constructors
            or property setters:
            <code><![CDATA[
            class MyType : MyBaseType
            {
              public MyType (string name) : base (ArgumentUtility.CheckNotNullOrEmpty ("name", name))
              {
              }
            
              public override Name
              {
                set { base.Name = ArgumentUtility.CheckNotNullOrEmpty ("value", value); }
              }
            }
            ]]></code>
            </remarks>
        </member>
        <member name="M:Remotion.Utilities.ArgumentUtility.CheckNotNullAndType``1(System.String,System.Object)">
            <summary>Returns the value itself if it is not <see langword="null"/> and of the specified value type.</summary>
            <typeparam name="TExpected"> The type that <paramref name="actualValue"/> must have. </typeparam>
            <exception cref="T:System.ArgumentNullException">The <paramref name="actualValue"/> is a <see langword="null"/>.</exception>
            <exception cref="T:Remotion.Utilities.ArgumentTypeException">The <paramref name="actualValue"/> is an instance of another type.</exception>
        </member>
        <member name="M:Remotion.Utilities.ArgumentUtility.CheckType``1(System.String,System.Object)">
            <summary>Returns the value itself if it is of the specified type.</summary>
            <typeparam name="TExpected"> The type that <paramref name="actualValue"/> must have. </typeparam>
            <exception cref="T:Remotion.Utilities.ArgumentTypeException"> 
                <paramref name="actualValue"/> is an instance of another type (which is not a subtype of <typeparamref name="TExpected"/>).</exception>
            <exception cref="T:System.ArgumentNullException"> 
                <paramref name="actualValue"/> is null and <typeparamref name="TExpected"/> cannot be null. </exception>
            <remarks>
              For non-nullable value types, you should use either <see cref="M:Remotion.Utilities.ArgumentUtility.CheckNotNullAndType``1(System.String,System.Object)"/> or pass the type 
              <see cref="T:System.Nullable`1"/> instead.
            </remarks>
        </member>
        <member name="M:Remotion.Utilities.ArgumentUtility.CheckNotNullAndTypeIsAssignableFrom(System.String,System.Type,System.Type)">
            <summary>Checks whether <paramref name="actualType"/> is not <see langword="null"/> and can be assigned to <paramref name="expectedType"/>.</summary>
            <exception cref="T:System.ArgumentNullException">The <paramref name="actualType"/> is <see langword="null"/>.</exception>
            <exception cref="T:Remotion.Utilities.ArgumentTypeException">The <paramref name="actualType"/> cannot be assigned to <paramref name="expectedType"/>.</exception>
        </member>
        <member name="M:Remotion.Utilities.ArgumentUtility.CheckTypeIsAssignableFrom(System.String,System.Type,System.Type)">
            <summary>Checks whether <paramref name="actualType"/> can be assigned to <paramref name="expectedType"/>.</summary>
            <exception cref="T:Remotion.Utilities.ArgumentTypeException">The <paramref name="actualType"/> cannot be assigned to <paramref name="expectedType"/>.</exception>
        </member>
        <member name="M:Remotion.Utilities.ArgumentUtility.CheckItemsType``1(System.String,``0,System.Type)">
            <summary>Checks whether all items in <paramref name="collection"/> are of type <paramref name="itemType"/> or a null reference.</summary>
            <exception cref="T:Remotion.Utilities.ArgumentItemTypeException"> If at least one element is not of the specified type or a derived type. </exception>
        </member>
        <member name="M:Remotion.Utilities.ArgumentUtility.CheckItemsNotNullAndType``1(System.String,``0,System.Type)">
            <summary>Checks whether all items in <paramref name="collection"/> are of type <paramref name="itemType"/> and not null references.</summary>
            <exception cref="T:Remotion.Utilities.ArgumentItemTypeException"> If at least one element is not of the specified type or a derived type. </exception>
            <exception cref="T:Remotion.Utilities.ArgumentItemNullException"> If at least one element is a null reference. </exception>
        </member>
        <member name="M:Remotion.Utilities.ArgumentUtility.CheckValidEnumValue(System.String,System.Enum)">
            <summary>Checks whether <paramref name="enumValue"/> is defined within its enumeration type.</summary>
            <exception cref="T:System.ArgumentNullException"> If <paramref name="enumValue"/> is a null reference. </exception>
            <exception cref="T:System.ArgumentOutOfRangeException"> If <paramref name="enumValue"/> has a numeric value that is not completely defined within its 
            enumeration type. For flag types, every bit must correspond to at least one enumeration value. </exception>
        </member>
        <member name="M:Remotion.Utilities.ArgumentUtility.CheckValidEnumValueAndType``1(System.String,System.Object)">
            <summary>Checks whether <paramref name="enumValue"/> is of the enumeration type <typeparamref name="TEnum"/> and defined within this type.</summary>
            <remarks>
            When successful, the value is returned as a <c>Nullable</c> of the specified type for direct assignment. 
            </remarks>
            <exception cref="T:Remotion.Utilities.ArgumentTypeException"> If <paramref name="enumValue"/> is not of the specified type. </exception>
            <exception cref="T:System.ArgumentOutOfRangeException"> If <paramref name="enumValue"/> has a numeric value that is not completely defined within its 
            enumeration type. For flag types, every bit must correspond to at least one enumeration value. </exception>
        </member>
        <member name="M:Remotion.Utilities.ArgumentUtility.CheckValidEnumValueAndTypeAndNotNull``1(System.String,System.Object)">
            <summary>Checks whether <paramref name="enumValue"/> is of the enumeration type <typeparamref name="TEnum"/>, is defined within this 
            type, and is not a null reference.</summary>
            <remarks>
            When successful, the value is returned as the specified type for direct assignment. 
            </remarks>
            <exception cref="T:System.ArgumentNullException"> If <paramref name="enumValue"/> is a null reference. </exception>
            <exception cref="T:Remotion.Utilities.ArgumentTypeException"> If <paramref name="enumValue"/> is not of the specified type. </exception>
            <exception cref="T:System.ArgumentOutOfRangeException"> If <paramref name="enumValue"/> has a numeric value that is not completely defined within its 
            enumeration type. For flag types, every bit must correspond to at least one enumeration value. </exception>
        </member>
        <member name="T:Remotion.Utilities.ArrayUtility">
            <summary>
            Provides utility functions that make common array operations easier.
            </summary>
        </member>
        <member name="T:Remotion.Utilities.BidirectionalStringConverter">
            <summary> Specialization of <see cref="T:System.ComponentModel.TypeConverter"/> for conversions from and to <see cref="T:System.String"/>. </summary>
            <remarks>
              <para>
                Conversions from <see cref="T:System.Single"/> and <see cref="T:System.Double"/> are done using "R" as format string. 
              </para><para>
                Conversion is possible under the following conditions:
              </para>
              <list type="bullet">
                <item>
                  The <see cref="T:System.Type"/> is <see cref="T:System.Guid"/> or <see cref="T:System.DBNull"/>
                </item>
                <item>
                  The <see cref="T:System.Type"/> is an array of scalar values.
                </item>
                <item>
                  A <see cref="T:System.Type"/> implements either a 
                  public <see langword="static"/> &lt;DestinationType&gt; Parse (string) or a 
                  public <see langword="static"/> &lt;DestinationType&gt; Parse (string, IFormatProvider) method.
                </item>
              </list>
            </remarks>
        </member>
        <member name="M:Remotion.Utilities.BidirectionalStringConverter.CanConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary> Test: Can convert from <paramref name="sourceType"/> to <see cref="T:System.String"/>? </summary>
            <param name="context"> An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. </param>
            <param name="sourceType"> 
              The <see cref="T:System.Type"/> of the value to be converted into a <see cref="T:System.String"/>.
            </param>
            <returns> <see langword="true"/> if the conversion is supported. </returns>
            <remarks>
            In theory, every object can be converted to a string because every object has a <see cref="M:System.Object.ToString"/> method. The 
            <see cref="T:Remotion.Utilities.BidirectionalStringConverter"/>, however, only supports objects for which round-tripping is supported. This method therefore only
            returns <see langword="true"/> for types whose values can be converted both into and back from a string.
            </remarks>
        </member>
        <member name="M:Remotion.Utilities.BidirectionalStringConverter.CanConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Type)">
            <summary> Test: Can convert from <see cref="T:System.String"/> to <paramref name="destinationType"/>? </summary>
            <param name="context"> An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. </param>
            <param name="destinationType"> The <see cref="T:System.Type"/>  to convert a <see cref="T:System.String"/> value to. </param>
            <returns> <see langword="true"/> if the conversion is supported. </returns>
        </member>
        <member name="M:Remotion.Utilities.BidirectionalStringConverter.ConvertFrom(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object)">
            <summary> Converts <paramref name="value"/> into a <see cref="T:System.String"/>. </summary>
            <param name="context"> An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. </param>
            <param name="culture"> The <see cref="T:System.Globalization.CultureInfo"/> to use as the current culture. </param>
            <param name="value">  The source value. </param>
            <returns> A <see cref="T:System.String"/>.  </returns>
            <exception cref="T:System.NotSupportedException"> The conversion could not be performed. </exception>
            <remarks>
              Conversions from <see cref="T:System.Single"/> and <see cref="T:System.Double"/> are done using "R" as format string. 
            </remarks>
        </member>
        <member name="M:Remotion.Utilities.BidirectionalStringConverter.ConvertTo(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Object,System.Type)">
            <summary> Convertes a <see cref="T:System.String"/> into the <paramref name="destinationType"/>. </summary>
            <param name="context"> An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. </param>
            <param name="culture"> The <see cref="T:System.Globalization.CultureInfo"/> to use as the current culture. </param>
            <param name="value"> The <see cref="T:System.String"/> to be converted. </param>
            <param name="destinationType"> The destination <see cref="T:System.Type"/>. Must not be <see langword="null"/>. </param>
            <returns> An <see cref="T:System.Object"/> that represents the converted value. </returns>
            <exception cref="T:System.NotSupportedException"> The conversion could not be performed. </exception>
        </member>
        <member name="M:Remotion.Utilities.BidirectionalStringConverter.GetStandardValuesExclusive(System.ComponentModel.ITypeDescriptorContext)">
            <summary>
              Returns whether the collection of standard values returned by 
              <see cref="M:System.ComponentModel.TypeConverter.GetStandardValues"/> is an exclusive list.
            </summary>
            <param name="context"> An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. </param>
            <returns> <see langword="false"/>. </returns>
        </member>
        <member name="M:Remotion.Utilities.BidirectionalStringConverter.GetStandardValuesSupported(System.ComponentModel.ITypeDescriptorContext)">
            <summary> Returns whether this object supports a standard set of values that can be picked from a list. </summary>
            <param name="context"> An ITypeDescriptorContext that provides a format context. </param>
            <returns> <see langword="false"/>. </returns>
        </member>
        <member name="T:Remotion.Utilities.EnumDescriptionAttribute">
            <summary>
            Use this attribute to specify a clear text representation of a certain enumeration value.
            </summary>
        </member>
        <member name="T:Remotion.Utilities.EnumDescription">
            <summary>
            Use this class to get the clear text representations of enumeration values.
            </summary>
        </member>
        <member name="F:Remotion.Utilities.EnumDescription.s_typeDescriptions">
            <summary>This is for enums with the EnumDescriptionAttribute on values. </summary>
            <remarks> This is for enums with the EnumDescriptionAttribute on values. </remarks>
        </member>
        <member name="F:Remotion.Utilities.EnumDescription.s_enumResourceManagers">
            <summary> This is for enums with the EnumDescriptionResourceAttribute.  </summary>
        </member>
        <member name="M:Remotion.Utilities.EnumDescription.CreateDesciptionsDictionary(System.Type)">
            <returns>IDictionary&lt;System.Enum, string&gt;</returns>
        </member>
        <member name="T:Remotion.Utilities.EnumUtility">
            <summary>
            This utility class provides methods for dealing with enumeration values.
            </summary>
        </member>
        <member name="M:Remotion.Utilities.EnumUtility.IsValidEnumValue(System.Object)">
            <summary>
            Checks whether the specified value is one of the values that the enumeration type defines.
            </summary>
        </member>
        <member name="M:Remotion.Utilities.EnumUtility.IsValidEnumValue(System.Type,System.Object)">
            <summary>
            Checks whether the specified <paramref name="value"/> is one of the values that the <paramref name="enumType"/> defines.
            </summary>
            <remarks>This method corresponds to <see cref="T:System.Enum"/>.<see cref="M:System.Enum.IsDefined(System.Type,System.Object)"/> but can also handls flag-enums.</remarks>
            <exception cref="T:System.ArgumentException">
              <para><paramref name="enumType"/> is not an <see cref="T:System.Enum"/>.</para>
              -or- 
              <para>The type of <paramref name="value"/> is not an <paramref name="enumType"/>.</para>
              -or-
              <para>The type of <paramref name="value"/> is not an underlying type of <paramref name="enumType"/>.</para>
            </exception>
            <exception cref="T:System.InvalidOperationException">
              value is not type <see cref="T:System.SByte"/>, <see cref="T:System.Int16"/>, <see cref="T:System.Int32"/>, <see cref="T:System.Int64"/>, 
              <see cref="T:System.Byte"/>, <see cref="T:System.UInt16"/>, <see cref="T:System.UInt32"/>, <see cref="T:System.UInt64"/>.
            </exception>
        </member>
        <member name="T:Remotion.Utilities.NameValueCollectionUtility">
            <summary>
              Utility class for <see cref="T:System.Collections.Specialized.NameValueCollection"/>
            </summary>
        </member>
        <member name="M:Remotion.Utilities.NameValueCollectionUtility.Append(System.Collections.Specialized.NameValueCollection,System.Collections.Specialized.NameValueCollection)">
            <summary>
              Adds the second dictionary to the first. If a key occurs in both dictionaries, the value of the second
              dictionaries is taken.
            </summary>
            <param name="first"> Must not be <see langword="null"/>. </param>
            <param name="second"> Must not be <see langword="null"/>. </param>
        </member>
        <member name="M:Remotion.Utilities.NameValueCollectionUtility.Merge(System.Collections.Specialized.NameValueCollection,System.Collections.Specialized.NameValueCollection)">
            <summary>
              Merges two collections. If a key occurs in both collections, the value of the second collections is taken.
            </summary>
        </member>
        <member name="M:Remotion.Utilities.ReflectionUtility.GetOriginalDeclaringType(System.Reflection.PropertyInfo)">
            <summary>
            Returns the <see cref="T:System.Type"/> where the property was initially decelared.
            </summary>
            <param name="propertyInfo">The property whose identifier should be returned. Must not be <see langword="null"/>.</param>
            <returns>The <see cref="T:System.Type"/> where the property was declared for the first time.</returns>
        </member>
        <member name="M:Remotion.Utilities.ReflectionUtility.GetOriginalDeclaringType(System.Reflection.MethodInfo)">
            <summary>
            Returns the <see cref="T:System.Type"/> where the method was initially declared.
            </summary>
            <param name="methodInfo">The method whose type should be returned. Must not be <see langword="null"/>.</param>
            <returns>The <see cref="T:System.Type"/> where the method was declared for the first time.</returns>
        </member>
        <member name="M:Remotion.Utilities.ReflectionUtility.IsOriginalDeclaration(System.Reflection.PropertyInfo)">
            <summary>
            Determines whether the given <see cref="T:System.Reflection.PropertyInfo"/> is the original base declaration.
            </summary>
            <param name="propertyInfo">The property info to check.</param>
            <returns>
            	<see langword="true"/> if the <paramref name="propertyInfo"/> is the first declaration of the property; <see langword="false"/> if it is an 
            	overrride.
            </returns>
        </member>
        <member name="M:Remotion.Utilities.ReflectionUtility.GuessIsExplicitInterfaceProperty(System.Reflection.PropertyInfo)">
            <summary>
            Guesses whether the given property is an explicit interface implementation by checking whether it has got private virtual final accessors.
            This can be used as a heuristic to find explicit interface properties without having to check InterfaceMaps for every interface on
            info.DeclaringType. With C# and VB.NET, the heuristic should always be right.
            </summary>
            <param name="info">The property to check.</param>
            <returns>True, if the property is very likely an explicit interface implementation (at least in C# and VB.NET code); otherwise, false.</returns>
        </member>
        <member name="M:Remotion.Utilities.ReflectionUtility.CanAscribe(System.Type,System.Type)">
            <summary>
            Evaluates whether the <paramref name="type"/> can be ascribed to the <paramref name="ascribeeType"/>.
            </summary>
            <param name="type">The <see cref="T:System.Type"/> to check. Must not be <see langword="null"/>.</param>
            <param name="ascribeeType">The <see cref="T:System.Type"/> to check the <paramref name="type"/> against. Must not be <see langword="null"/>.</param>
            <returns>
            <see langword="true"/> if the <paramref name="type"/> is the <paramref name="ascribeeType"/> or its instantiation, 
            its subclass or the implementation of an interface in case the <paramref name="ascribeeType"/> is an interface.
            </returns>
        </member>
        <member name="M:Remotion.Utilities.ReflectionUtility.GetAscribedGenericArguments(System.Type,System.Type)">
            <summary>
            Returns the type arguments for the ascribed <paramref name="ascribeeType"/> as inherited or implemented by a given <paramref name="type"/>.
            </summary>
            <param name="type">The <see cref="T:System.Type"/> for which to return the type parameter. Must not be <see langword="null"/>.</param>
            <param name="ascribeeType">The <see cref="T:System.Type"/> to check the <paramref name="type"/> against. Must not be <see langword="null"/>.</param>
            <returns>A <see cref="T:System.Type"/> array containing the generic arguments of the <paramref name="ascribeeType"/> as it is inherited or implemented
            by <paramref name="type"/>.</returns>
            <exception cref="T:Remotion.Utilities.ArgumentTypeException">
            Thrown if the <paramref name="type"/> is not the <paramref name="ascribeeType"/> or its instantiation, its subclass or the implementation
            of an interface in case the <paramref name="ascribeeType"/> is an interface.
            </exception>
            <exception cref="T:System.Reflection.AmbiguousMatchException">
            Thrown if the <paramref name="type"/> is an interface and implements the interface <paramref name="ascribeeType"/> or its instantiations
            more than once.
            </exception>
        </member>
        <member name="T:Remotion.Utilities.StringUtility">
            <summary>
            Provides utility functions that make common string handling easier.
            </summary>
        </member>
        <member name="M:Remotion.Utilities.StringUtility.ParseSeparatedList(System.String,System.Char)">
            <summary>
              Parses a delimiter-separated string into individual elements.
            </summary>
            <remarks>
              This method handles quotes and escaping. A quoted string may contain commas that
              will not be treated as separators. Commas prefixed with a backslash are treated
              like normal commas, double backslashes are treated as single backslashes.
            </remarks>
            <param name="value"> The string to be parsed. Must not be <see langword="null"/>. </param>
            <param name="delimiter"> The character used for list separation. Default is comma (,). </param>
        </member>
        <member name="M:Remotion.Utilities.StringUtility.ParseSeparatedList(System.String)">
            <summary>
              Parses a delimiter-separated string into individual elements.
            </summary>
            <remarks>
              This method handles quotes and escaping. A quoted string may contain commas that
              will not be treated as separators. Commas prefixed with a backslash are treated
              like normal commas, double backslashes are treated as single backslashes.
            </remarks>
            <param name="value"> The string to be parsed. Must not be <see langword="null"/>. </param>
        </member>
        <member name="M:Remotion.Utilities.StringUtility.ParseSeparatedList(System.String,System.Char,System.Char,System.Char,System.Char,System.String,System.Boolean)">
            <summary>
              Parses a delimiter-separated string into individual elements.
            </summary>
            <remarks>
              This method handles quotes and escaping. A quoted string may contain commas that
              will not be treated as separators. Commas prefixed with a backslash are treated
              like normal commas, double backslashes are treated as single backslashes.
            </remarks>
            <param name="value"> The string to be parsed. Must not be <see langword="null"/>. </param>
            <param name="delimiter"> The character used for list separation. Default is comma (,). </param>
            <param name="openingQuote"> The character used as opening quote. Default is double quote (&quot;). </param>
            <param name="closingQuote"> The character used as closing quote. Default is double quote (&quot;). </param>
            <param name="escapingChar"> The character used to escape quotes and itself. Default is backslash (\). </param>
            <param name="whitespaceCharacters"> A string containing all characters to be considered whitespace. 
              Default is space character only. </param>
            <param name="interpretSpecialCharacters"> If true, the escaping character can be followed by the letters
              r, n or t (case sensitive) for line feeds, new lines or tab characters, respectively. Default is true. </param>
        </member>
        <member name="M:Remotion.Utilities.StringUtility.AreEqual(System.String,System.String)">
            <summary>
            Compares two strings using the invariant culture.
            </summary>
        </member>
        <member name="M:Remotion.Utilities.StringUtility.AreEqual(System.String,System.String,System.Boolean)">
            <summary>
            Compares two strings using the invariant culture.
            </summary>
        </member>
        <member name="M:Remotion.Utilities.StringUtility.Parse(System.Type,System.String,System.IFormatProvider)">
            <summary>
              Parses the specified type from a string.
            </summary>
            <param name="type"> The type that should be created from the string. This type must have 
              a public <see langword="static"/> <b>Parse</b> method with either no arguments or a single 
              <see cref="T:System.IFormatProvider"/>argument. 
              If <paramref name="type"/> is an array type, the values must be comma-separated. (Escaping is 
              handled as for <see cref="M:Remotion.Utilities.StringUtility.ParseSeparatedList(System.String,System.Char)"/>.) </param>
            <param name="value"> The string value to be parsed. </param>
            <param name="formatProvider"> The format provider to be passed to the type's <b>Parse</b> method (if present). </param>
            <returns> An instance of the specified type. </returns>
            <exception cref="T:Remotion.Utilities.ParseException"> The <b>Parse</b> method was not found, or failed. </exception>
        </member>
        <member name="T:Remotion.Utilities.StringUtility.ParsedItem">
            <summary>
              The result of <see cref="M:Remotion.Utilities.StringUtility.ParseSeparatedList(System.String,System.Char)"/>.
            </summary>
        </member>
        <member name="F:Remotion.Utilities.StringUtility.ParsedItem.Value">
            <summary> The string value at this position. </summary>
        </member>
        <member name="F:Remotion.Utilities.StringUtility.ParsedItem.IsQuoted">
            <summary> An indicator that is <see langword="true" /> if the string at this position was quoted in the input string. </summary>
        </member>
        <member name="T:Remotion.Utilities.TypeConversionProvider">
            <summary> 
              Provides functionality to get the <see cref="T:System.ComponentModel.TypeConverter"/> for a <see cref="T:System.Type"/> and to convert a value
              from a source <see cref="T:System.Type"/> into a destination <see cref="T:System.Type"/>.
            </summary>
            <remarks>
              <para>
                Use the <see cref="M:Remotion.Utilities.TypeConversionProvider.Create"/> method if you need to create a new instance of the
                <see cref="T:Remotion.Utilities.TypeConversionProvider"/> type.
              </para><para>
                Conversion is possible under the following conditions:
              </para>
              <list type="bullet">
                <item>
                  A type has a <see cref="T:System.ComponentModel.TypeConverter"/> applied through the <see cref="T:System.ComponentModel.TypeConverterAttribute"/> that
                  supports the conversion. 
                </item>
                <item>
                  For <see cref="T:System.Enum"/> types into the <see cref="T:System.String"/> value or the underlying numeric 
                  <see cref="T:System.Type"/>.
                </item>
                <item>
                  For types without a <see cref="T:System.ComponentModel.TypeConverter"/>, the <see cref="T:Remotion.Utilities.TypeConversionProvider"/> try to use the 
                  <see cref="T:Remotion.Utilities.BidirectionalStringConverter"/>. See the documentation of the string converter for details on the
                  supported types.
                </item>
              </list>
            </remarks>
        </member>
        <member name="M:Remotion.Utilities.TypeConversionProvider.Create">
            <summary> Creates a new instace of the <see cref="T:Remotion.Utilities.TypeConversionProvider"/> type. </summary>
            <returns> An instance of the <see cref="T:Remotion.Utilities.TypeConversionProvider"/> type. </returns>
        </member>
        <member name="M:Remotion.Utilities.TypeConversionProvider.SetCurrent(Remotion.Utilities.TypeConversionProvider)">
            <summary> Sets the current <see cref="T:Remotion.Utilities.TypeConversionProvider"/>. </summary>
            <param name="provider"> A <see cref="T:Remotion.Utilities.TypeConversionProvider"/>. Must not be <see langword="null"/>. </param>
        </member>
        <member name="M:Remotion.Utilities.TypeConversionProvider.GetTypeConverter(System.Type,System.Type)">
            <summary> 
              Gets the <see cref="T:System.ComponentModel.TypeConverter"/> that is able to convert an instance of the <paramref name="sourceType"/> 
              <see cref="T:System.Type"/> into an instance of the <paramref name="destinationType"/> <see cref="T:System.Type"/>.
            </summary>
            <param name="sourceType"> 
              The source <see cref="T:System.Type"/> of the value. Must not be <see langword="null"/>. 
            </param>
            <param name="destinationType"> 
              The destination <see cref="T:System.Type"/> of the value. Must not be <see langword="null"/>. 
            </param>
            <returns> 
              A <see cref="T:Remotion.Utilities.TypeConverterResult"/> or or <see cref="F:Remotion.Utilities.TypeConverterResult.Empty"/>if no matching <see cref="T:System.ComponentModel.TypeConverter"/> can be found.
            </returns>
            <remarks> 
              You can identify whether you must use the <see cref="M:System.ComponentModel.TypeConverter.ConvertTo(System.Object,System.Type)"/> or the 
              <see cref="M:System.ComponentModel.TypeConverter.ConvertFrom(System.Object)"/> method by testing the returned <see cref="T:System.ComponentModel.TypeConverter"/>'s
              <see cref="M:System.ComponentModel.TypeConverter.CanConvertTo(System.Type)"/> and <see cref="M:System.ComponentModel.TypeConverter.CanConvertFrom(System.Type)"/> methods.
            </remarks>
        </member>
        <member name="M:Remotion.Utilities.TypeConversionProvider.GetTypeConverter(System.Type)">
            <summary> 
              Gets the <see cref="T:System.ComponentModel.TypeConverter"/> that is associated with the specified <paramref name="type"/>.
            </summary>
            <param name="type"> 
              The <see cref="T:System.Type"/> to get the <see cref="T:System.ComponentModel.TypeConverter"/> for. Must not be <see langword="null"/>.
            </param>
            <returns>
              A <see cref="T:System.ComponentModel.TypeConverter"/> or <see langword="null"/> of no <see cref="T:System.ComponentModel.TypeConverter"/> can be found.
            </returns>
        </member>
        <member name="M:Remotion.Utilities.TypeConversionProvider.AddTypeConverter(System.Type,System.ComponentModel.TypeConverter)">
            <summary> 
              Registers the <paramref name="converter"/> for the <paramref name="type"/>, overriding the default settings. 
            </summary>
            <param name="type"> 
              The <see cref="T:System.Type"/> for which the <paramref name="converter"/> should be used. 
              Must not be <see langword="null"/>.
            </param>
            <param name="converter"> The <see cref="T:System.ComponentModel.TypeConverter"/> to register. Must not be <see langword="null"/>. </param>
        </member>
        <member name="M:Remotion.Utilities.TypeConversionProvider.RemoveTypeConverter(System.Type)">
            <summary>
              Unregisters a special <see cref="T:System.ComponentModel.TypeConverter"/> previously registered by using <see cref="M:Remotion.Utilities.TypeConversionProvider.AddTypeConverter(System.Type,System.ComponentModel.TypeConverter)"/>.
            </summary>
            <param name="type">
              The <see cref="T:System.Type"/> whose special <see cref="T:System.ComponentModel.TypeConverter"/> should be removed. 
              Must not be <see langword="null"/>.
            </param>
            <remarks> If no <see cref="T:System.ComponentModel.TypeConverter"/> has been registered, the method has no effect. </remarks>
        </member>
        <member name="M:Remotion.Utilities.TypeConversionProvider.CanConvert(System.Type,System.Type)">
            <summary> 
              Test whether the <see cref="T:Remotion.Utilities.TypeConversionProvider"/> object can convert an object of <see cref="T:System.Type"/> 
              <paramref name="sourceType"/> into an object of <see cref="T:System.Type"/> <paramref name="destinationType"/>
              by using the <see cref="M:Remotion.Utilities.TypeConversionProvider.Convert(System.Type,System.Type,System.Object)"/> method.
            </summary>
            <param name="sourceType"> 
              The source <see cref="T:System.Type"/> of the value. Must not be <see langword="null"/>. 
            </param>
            <param name="destinationType"> 
              The destination <see cref="T:System.Type"/> of the value. Must not be <see langword="null"/>. 
            </param>
            <returns> <see langword="true"/> if a conversion is possible. </returns>
        </member>
        <member name="M:Remotion.Utilities.TypeConversionProvider.Convert(System.Type,System.Type,System.Object)">
            <summary> Convertes the <paramref name="value"/> into the <paramref name="destinationType"/>. </summary>
            <param name="sourceType"> 
              The source <see cref="T:System.Type"/> of the <paramref name="value"/>. Must not be <see langword="null"/>. 
            </param>
            <param name="destinationType"> 
              The destination <see cref="T:System.Type"/> of the <paramref name="value"/>. Must not be <see langword="null"/>. 
            </param>
            <param name="value"> The value to be converted. Must not be <see langword="null"/>. </param>
            <returns> An <see cref="T:System.Object"/> that represents the converted <paramref name="value"/>. </returns>
        </member>
        <member name="M:Remotion.Utilities.TypeConversionProvider.Convert(System.ComponentModel.ITypeDescriptorContext,System.Globalization.CultureInfo,System.Type,System.Type,System.Object)">
            <summary> Convertes the <paramref name="value"/> into the <paramref name="destinationType"/>. </summary>
            <param name="context"> An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context. </param>
            <param name="culture"> The <see cref="T:System.Globalization.CultureInfo"/> to use as the current culture. </param>
            <param name="sourceType"> 
              The source <see cref="T:System.Type"/> of the <paramref name="value"/>. Must not be <see langword="null"/>. 
            </param>
            <param name="destinationType"> 
              The destination <see cref="T:System.Type"/> of the <paramref name="value"/>. Must not be <see langword="null"/>. 
            </param>
            <param name="value"> The <see cref="T:System.Object"/> to be converted.</param>
            <returns> An <see cref="T:System.Object"/> that represents the converted <paramref name="value"/>. </returns>
        </member>
        <member name="P:Remotion.Utilities.TypeConversionProvider.Current">
            <summary> Gets the current <see cref="T:Remotion.Utilities.TypeConversionProvider"/>. </summary>
            <value> An instance of the <see cref="T:Remotion.Utilities.TypeConversionProvider"/> type. </value>
        </member>
        <member name="T:Remotion.Utilities.TypeUtility">
            <summary>
            Utility methods for handling types.
            </summary>
        </member>
        <member name="M:Remotion.Utilities.TypeUtility.ParseAbbreviatedTypeName(System.String)">
            <summary>
              Converts abbreviated qualified type names into standard qualified type names.
            </summary>
            <remarks>
              Abbreviated type names use the format <c>assemblyname::subnamespace.type</c>. For instance, the
              abbreviated type name <c>"Remotion.Web::Utilities.ControlHelper"</c> would result in the standard
              type name <c>"Remotion.Web.Utilities.ControlHelper, Remotion.Web"</c>.
            </remarks>
            <param name="abbreviatedTypeName"> A standard or abbreviated type name. </param>
            <returns> A standard type name as expected by <see cref="M:System.Type.GetType(System.String)"/>. </returns>
        </member>
        <member name="M:Remotion.Utilities.TypeUtility.GetType(System.String)">
            <summary>
              Loads a type, optionally using an abbreviated type name as defined in <see cref="M:Remotion.Utilities.TypeUtility.ParseAbbreviatedTypeName(System.String)"/>.
            </summary>
            <remarks>
            This method uses <see cref="T:Remotion.Reflection.TypeDiscovery.ContextAwareTypeDiscoveryUtility"/>. By default, it will search all assemblies for the requested type.
            In the designer context, <see cref="T:System.ComponentModel.Design.IDesignerHost"/> is used for the lookup.
            </remarks>
        </member>
        <member name="M:Remotion.Utilities.TypeUtility.GetType(System.String,System.Boolean)">
            <summary>
              Loads a type, optionally using an abbreviated type name as defined in <see cref="M:Remotion.Utilities.TypeUtility.ParseAbbreviatedTypeName(System.String)"/>.
            </summary>
            <remarks>
            This method uses <see cref="T:Remotion.Reflection.TypeDiscovery.ContextAwareTypeDiscoveryUtility"/>. By default, it will search all assemblies for the requested type.
            In the designer context, <see cref="T:System.ComponentModel.Design.IDesignerHost"/> is used for the lookup.
            </remarks>
        </member>
        <member name="M:Remotion.Utilities.TypeUtility.GetType(System.String,System.Boolean,System.Boolean)">
            <summary>
              Loads a type, optionally using an abbreviated type name as defined in <see cref="M:Remotion.Utilities.TypeUtility.ParseAbbreviatedTypeName(System.String)"/>.
            </summary>
        </member>
        <member name="M:Remotion.Utilities.TypeUtility.GetAbbreviatedTypeName(System.Type,System.Boolean)">
            <summary>
            Gets the type name in abbreviated syntax (<see cref="M:Remotion.Utilities.TypeUtility.ParseAbbreviatedTypeName(System.String)"/>).
            </summary>
        </member>
        <member name="T:Remotion.Utilities.TypeUtility.AbbreviationParser">
            <summary>
            The implementation of <see cref="M:Remotion.Utilities.TypeUtility.ParseAbbreviatedTypeName(System.String)"/>, implemented in a nested class in order to prevent unnecessary
            initialization of pre-compiled regular expressions.
            </summary>
        </member>
        <member name="T:Remotion.Utilities.UtcNowProvider">
            <summary>
            The <see cref="T:Remotion.Utilities.UtcNowProvider"/> returns the actual date and time.
            </summary>
        </member>
        <member name="T:Remotion.Utilities.WorkContext">
            <summary>
              Provides context information for error messages.
            </summary>
            <remarks>
      <para>
        Exceptions contain a stack trace of the time the exception was thrown, so it is easy to identify the code that 
        caused the exception. However, there is no information as to which data this code was processing, or which 
        iteration
        of a certain loop caused a problem. For programs that process large amount of data and fail for specific data, 
        it 
        can be tedious to find the state or data that caused an error. 
      <para></para>
        WorkContexts provide an easy way to specify which data is currently being processed. In an exception handling 
        block,
        the current context stack can be used to get diagnostic information about the state of the application when the
        exception occured. 
      </para>
    </remarks><example>
      The following example demonstrates the use of WorkContexts to provide information about the data that is currently
       being
      processed. Note the <c>using</c> statement and the call to <see cref="M:Remotion.Utilities.WorkContext.Done"/>. 
      <code><![CDATA[
void f (string[] document)
{
  try
  {
    for (int i = 0; i < document.Lenght; ++i)
    {
      using (WorkContext ctxLine = WorkContext.EnterNew ("Processing line {0}: \"{1}\".", i, line[i]))
      {
        Console.WriteLine (line[i].Trim()); // this causes a NullReferenceException if line[i] is a null reference
        ctxLine.Done();
      }
    }
}
catch (Exception e)
{
  Console.WriteLine ("Error \"{0}\" occured during:\n{1}", e.Message, WorkContext.Stack);
}
      ]]></code>
    </example>
        </member>
        <member name="F:Remotion.Utilities.WorkContext.s_stack">
            <summary> Stack&lt;WorkContext&gt; </summary>
        </member>
        <member name="M:Remotion.Utilities.WorkContext.EnterNew(System.String)">
            <summary>
            Creates a new context and puts it on the stack.
            </summary>
            <param name="text">The description of the context.</param>
        </member>
        <member name="M:Remotion.Utilities.WorkContext.EnterNew(System.String,System.Object[])">
            <summary>
            Creates a new context and puts it on the stack.
            </summary>
            <param name="format">A string containing zero or more format items for the description of the context.</param>
            <param name="args">An array containing zero or more objects to format.</param>
        </member>
        <member name="M:Remotion.Utilities.WorkContext.Enter(System.String)">
            <summary>
            Enters a context.
            </summary>
            <remarks>
        Instead of creating a new <see cref="T:Remotion.Utilities.WorkContext"/> and entering it using this method, you can use the 
        <see langword="static"/> method <see cref="M:Remotion.Utilities.WorkContext.EnterNew(System.String)"/>. Using <see cref="M:Remotion.Utilities.WorkContext.Enter(System.String)"/> makes sense if the call is 
        conditional, especially if you use the methods <see cref="M:Remotion.Utilities.WorkContext.EnterIfDebug(System.String)"/> or <see cref="M:Remotion.Utilities.WorkContext.EnterIfTrace(System.String)"/>.
      </remarks>
            <param name="text">The description of the context.</param>
        </member>
        <member name="M:Remotion.Utilities.WorkContext.Enter(System.String,System.Object[])">
            <summary>
            Enters a context.
            </summary>
            <remarks>
        Instead of creating a new <see cref="T:Remotion.Utilities.WorkContext"/> and entering it using this method, you can use the 
        <see langword="static"/> method <see cref="M:Remotion.Utilities.WorkContext.EnterNew(System.String)"/>. Using <see cref="M:Remotion.Utilities.WorkContext.Enter(System.String)"/> makes sense if the call is 
        conditional, especially if you use the methods <see cref="M:Remotion.Utilities.WorkContext.EnterIfDebug(System.String)"/> or <see cref="M:Remotion.Utilities.WorkContext.EnterIfTrace(System.String)"/>.
      </remarks>
            <param name="format">A string containing zero or more format items for the description of the context.</param><param name="args">An array containing zero or more objects to format.</param>
        </member>
        <member name="M:Remotion.Utilities.WorkContext.EnterIfDebug(System.String)">
            <summary>
            Enters a context. Calls to this method are only compiled if the symbol DEBUG is defined.
            <see cref="T:System.Diagnostics.ConditionalAttribute"/>
            </summary>
            <remarks>
        Instead of creating a new <see cref="T:Remotion.Utilities.WorkContext"/> and entering it using this method, you can use the 
        <see langword="static"/> method <see cref="M:Remotion.Utilities.WorkContext.EnterNew(System.String)"/>. Using <see cref="M:Remotion.Utilities.WorkContext.Enter(System.String)"/> makes sense if the call is 
        conditional, especially if you use the methods <see cref="M:Remotion.Utilities.WorkContext.EnterIfDebug(System.String)"/> or <see cref="M:Remotion.Utilities.WorkContext.EnterIfTrace(System.String)"/>.
      </remarks>
            <param name="text">The description of the context.</param>
        </member>
        <member name="M:Remotion.Utilities.WorkContext.EnterIfDebug(System.String,System.Object[])">
            <summary>
            Enters a context. Calls to this method are only compiled if the symbol DEBUG is defined.
            <see cref="T:System.Diagnostics.ConditionalAttribute"/>
            </summary>
            <remarks>
        Instead of creating a new <see cref="T:Remotion.Utilities.WorkContext"/> and entering it using this method, you can use the 
        <see langword="static"/> method <see cref="M:Remotion.Utilities.WorkContext.EnterNew(System.String)"/>. Using <see cref="M:Remotion.Utilities.WorkContext.Enter(System.String)"/> makes sense if the call is 
        conditional, especially if you use the methods <see cref="M:Remotion.Utilities.WorkContext.EnterIfDebug(System.String)"/> or <see cref="M:Remotion.Utilities.WorkContext.EnterIfTrace(System.String)"/>.
      </remarks>
            <param name="format">A string containing zero or more format items for the description of the context.</param><param name="args">An array containing zero or more objects to format.</param>
        </member>
        <member name="M:Remotion.Utilities.WorkContext.EnterIfTrace(System.String)">
            <summary>
            Enters a context. Calls to this method are only compiled if the symbol TRACE is defined.
            <see cref="T:System.Diagnostics.ConditionalAttribute"/>
            </summary>
            <remarks>
        Instead of creating a new <see cref="T:Remotion.Utilities.WorkContext"/> and entering it using this method, you can use the 
        <see langword="static"/> method <see cref="M:Remotion.Utilities.WorkContext.EnterNew(System.String)"/>. Using <see cref="M:Remotion.Utilities.WorkContext.Enter(System.String)"/> makes sense if the call is 
        conditional, especially if you use the methods <see cref="M:Remotion.Utilities.WorkContext.EnterIfDebug(System.String)"/> or <see cref="M:Remotion.Utilities.WorkContext.EnterIfTrace(System.String)"/>.
      </remarks>
            <param name="text">The description of the context.</param>
        </member>
        <member name="M:Remotion.Utilities.WorkContext.EnterIfTrace(System.String,System.Object[])">
            <summary>
            Enters a context. Calls to this method are only compiled if the symbol TRACE is defined.
            <see cref="T:System.Diagnostics.ConditionalAttribute"/>
            </summary>
            <remarks>
        Instead of creating a new <see cref="T:Remotion.Utilities.WorkContext"/> and entering it using this method, you can use the 
        <see langword="static"/> method <see cref="M:Remotion.Utilities.WorkContext.EnterNew(System.String)"/>. Using <see cref="M:Remotion.Utilities.WorkContext.Enter(System.String)"/> makes sense if the call is 
        conditional, especially if you use the methods <see cref="M:Remotion.Utilities.WorkContext.EnterIfDebug(System.String)"/> or <see cref="M:Remotion.Utilities.WorkContext.EnterIfTrace(System.String)"/>.
      </remarks>
            <param name="format">A string containing zero or more format items for the description of the context.</param><param name="args">An array containing zero or more objects to format.</param>
        </member>
        <member name="M:Remotion.Utilities.WorkContext.EnterIfWorkContext(System.String)">
            <summary>
            Enters a context. Calls to this method are only compiled if the symbol WORKCONTEXT is defined.
            <see cref="T:System.Diagnostics.ConditionalAttribute"/>
            </summary>
            <remarks>
        Instead of creating a new <see cref="T:Remotion.Utilities.WorkContext"/> and entering it using this method, you can use the 
        <see langword="static"/> method <see cref="M:Remotion.Utilities.WorkContext.EnterNew(System.String)"/>. Using <see cref="M:Remotion.Utilities.WorkContext.Enter(System.String)"/> makes sense if the call is 
        conditional, especially if you use the methods <see cref="M:Remotion.Utilities.WorkContext.EnterIfDebug(System.String)"/> or <see cref="M:Remotion.Utilities.WorkContext.EnterIfTrace(System.String)"/>.
      </remarks>
            <param name="text">The description of the context.</param>
        </member>
        <member name="M:Remotion.Utilities.WorkContext.EnterIfWorkContext(System.String,System.Object[])">
            <summary>
            Enters a context. Calls to this method are only compiled if the symbol WORKCONTEXT is defined.
            <see cref="T:System.Diagnostics.ConditionalAttribute"/>
            </summary>
            <remarks>
        Instead of creating a new <see cref="T:Remotion.Utilities.WorkContext"/> and entering it using this method, you can use the 
        <see langword="static"/> method <see cref="M:Remotion.Utilities.WorkContext.EnterNew(System.String)"/>. Using <see cref="M:Remotion.Utilities.WorkContext.Enter(System.String)"/> makes sense if the call is 
        conditional, especially if you use the methods <see cref="M:Remotion.Utilities.WorkContext.EnterIfDebug(System.String)"/> or <see cref="M:Remotion.Utilities.WorkContext.EnterIfTrace(System.String)"/>.
      </remarks>
            <param name="format">A string containing zero or more format items for the description of the context.</param><param name="args">An array containing zero or more objects to format.</param>
        </member>
        <member name="M:Remotion.Utilities.WorkContext.System#IDisposable#Dispose">
            <summary>
            Leaves the context.
            <seealso cref="M:Remotion.Utilities.WorkContext.Leave"/>.
            </summary>
        </member>
        <member name="M:Remotion.Utilities.WorkContext.Leave">
            <summary>
              Leaves the context.
            </summary>
            <remarks>
              <para>
              The context is left, but remains on the stack until the method <see cref="M:Remotion.Utilities.WorkContext.Done"/> is called, or a new context is 
              entered. Therefore, the left context is still available for inspection (e.g. in an exception handling block).
              </para><para>
              A context that is left, but not done, is prefixed with a question mark in the context stack output. Use this 
              information if you are not sure whether all calls to <see cref="M:Remotion.Utilities.WorkContext.Done"/> were coded correctly.
              </para><para>
              In C# it is generally recommended to use a <c>using</c> statement rather than calling <c>Leave</c> explicitly.
              </para>
            </remarks>
        </member>
        <member name="M:Remotion.Utilities.WorkContext.Done">
            <summary>
              Marks the context as done.
            </summary>
            <remarks>
              <para>
                Call this method if the work within a context has been processed successfully (i.e., no uncaught exception has been 
                raised).
              <para></para>
                For C# users, it is recommended to call this method at the end of the <c>using</c> block that contains the context.
              </para>
            </remarks>
        </member>
        <member name="P:Remotion.Utilities.WorkContext.EnableTracing">
            <summary>
            Use this flag to specify (or learn) whether trace output should be generated when contexts are entered, left or done.
            </summary>
            <remarks>
      The default value is <see langword="false"/>. You can change this value in your code, or use the 
      "Remotion.WorkContext.EnableTracing" 
      appSettings key in your application's configuration file to set it to <see langword="true"/>.
    </remarks><example>
      <code><![CDATA[
<configuration>
  <appSettings>
    <add key="Remotion.WorkContext.EnableTracing" value="true" />
  </appSettings>
</configuration>
      ]]></code>
    </example>
        </member>
        <member name="P:Remotion.Utilities.WorkContext.Stack">
            <summary>
              Gets the work context stack of the current thread.
            </summary>
            <remarks>
              The stack provides diagnostic information about the current execution context.
            </remarks>
        </member>
        <member name="P:Remotion.Utilities.WorkContext.Text">
            <summary>
            The description of the context.
            </summary>
        </member>
        <member name="F:Remotion.Utilities.WorkContext.ContextStack._stack">
            <summary> ArrayList &lt;WorkContext&gt; </summary>
        </member>
        <member name="M:Remotion.Utilities.WorkContext.ContextStack.ToArray">
            <summary>
              Returns the context stack as an array of WorkContext objects.
            </summary>
            <returns>
              The items on the context thread, with the top-level stack items first.
            </returns>
        </member>
        <member name="M:Remotion.Utilities.WorkContext.ContextStack.ToString">
            <summary>
              Returns a string representation of the context stack.
            </summary>
            <returns>
              An string with the description of each context on the stack on a separate line. Top-level contexts appear first.
              Contexts that are already left, but not done, are marked with a question mark. See <see cref="M:Remotion.Utilities.WorkContext.ContextStack.Leave(Remotion.Utilities.WorkContext)"/> and 
              <see cref="M:Remotion.Utilities.WorkContext.Done"/>.
            </returns>
        </member>
        <member name="P:Remotion.Utilities.WorkContext.ContextStack.LastLeft">
            <summary>
              The last WorkContext on the stack that was left by calling <see cref="M:Remotion.Utilities.WorkContext.ContextStack.Leave(Remotion.Utilities.WorkContext)"/>.
            </summary>
        </member>
        <member name="M:Remotion.Xml.SchemaLoaderBase.LoadSchemaSet">
            <summary> Gets an <see cref="T:System.Xml.Schema.XmlSchemaSet"/> for the schema specified with property <see cref="P:Remotion.Xml.SchemaLoaderBase.SchemaFile"/> that is embedded in the assembly. </summary>
            <remarks> Overwrite this method if the Schema includes other schemas that need to be loaded first. </remarks>
            <exception cref="T:System.ApplicationException"> Thrown if the schema file could not be loaded. </exception>
        </member>
        <member name="M:Remotion.Xml.SchemaLoaderBase.LoadSchema(System.String)">
            <summary> Gets an <see cref="T:System.Xml.Schema.XmlSchema"/> for a schema embedded in the assembly. </summary>
            <exception cref="T:System.ApplicationException"> Thrown if the schema file could not be loaded. </exception>
        </member>
        <member name="T:Remotion.Xml.XmlSerializationUtility">
            <summary>
            Use this class to easily serialize and deserialize objects to or from XML.
            </summary>
        </member>
        <member name="M:Remotion.Xml.XmlSerializationUtility.GetNamespace(System.Type)">
            <summary>
            Get the Namespace from a type's <see cref="T:System.Xml.Serialization.XmlRootAttribute"/> (preferred) or <see cref="T:System.Xml.Serialization.XmlTypeAttribute"/>.
            </summary>
            <exception cref="T:System.ArgumentException"> Thrown if no namespace is specified through at least one of the possible attributes. </exception>
        </member>
    </members>
</doc>
